![](/img/trans.png)
[英]Pulling data from one table to use in another query for SQL Server?
[英]Passthrough Query from one SQL Server to another that drops a table on the source
我在西班牙有一個 SQL 服務器,在美國有一個服務器,兩者之間存在域信任,每個服務器上都有鏈接服務器,可以訪問另一個服務器。
我希望能夠在美國 SQL 服務器上運行以下查詢,而無需在美國服務器上維護存儲過程以運行它。 有沒有辦法從西班牙的 SQL 服務器創建直通查詢? 我已經嘗試過使用 OPENQUERY 和 OPENROWSET ,但它不起作用,因為它們似乎只適用於返回結果的 select 語句:
DROP TABLE IF EXISTS [Global].[dbo].[WW_Customer_Receivables]
SELECT *
INTO [global].[dbo].[ww_customer_receivables]
FROM
[LinkedServerObject-Spain].[global].dbo.ww_customer_receivables
如果您想使用openquery
在鏈接服務器上執行 DDL 語句,您可以使用以下技巧:
SELECT *
FROM OPENQUERY(linkedserver, '
DROP TABLE IF EXISTS [Global].[dbo].[WW_Customer_Receivables]
SELECT @@RowCount')
SELECT @@RowCount
返回一個結果集。 所以OPENQUERY
有效。 這個技巧適用於所有 DDL 操作,如創建、更改、刪除。 或者,如果您想執行不返回結果集的插入/更新/刪除。
同樣的技巧在這里應用他們有一個虛擬 select foobar。
如果你想從openquery
執行into
語句,你可以這樣做:
DROP TABLE IF EXISTS [Global].[dbo].[WW_Customer_Receivables]
SELECT *
INTO [global].[dbo].[ww_customer_receivables]
FROM OPENQUERY([LinkerServerObject-US], '
SELECT *
FROM [global].dbo.ww_customer_receivables')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.