我有三個SQL服務器A、B和C。我試圖運行一個相同的查詢,如select @@servername從A服務器,在B和C服務器運行相同的查詢,我正在加載這個結果在一個服務器A表中。 請讓我知道如何完成這個任務。
uj5u.com熱心網友回復:
你可以使用鏈接的服務器。
1- 在一個實體中
INSERT INTO [DatabaseName]. [SchemaName]. [TableName] (...) SELECT ... FROM [B].[DatabaseName].[SchemaName].[TableName]。
INSERT INTO [DatabaseName].[SchemaName].[TableName] ( ...) SELECT ... FROM [C].[DatabaseName].[SchemaName].[TableName]。
2- WITHIN A instance (Dynamic SQL)
EXEC ('INSERT INTO [A]. [DatabaseName]. [SchemaName]. [TableName] ( ...) SELECT ... FROM [DatabaseName]. [SchemaName]. [TableName]'/span>) AT【B】。
EXEC ('INSERT INTO [A].[DatabaseName].[SchemaName].[TableName] (...) SELECT ... FROM [DatabaseName].[SchemaName].[TableName]'/span>) AT【C】。
3- WITHIN Other instance
INSERT INTO [A]. [DatabaseName]. [SchemaName]. [TableName] (...) SELECT ... FROM [DatabaseName].[SchemaName].[TableName]。
uj5u.com熱心網友回復:
你可以使用OPENQUERY從兩個遠程服務器上運行插入,這基本上是在遠程服務器上本地運行選擇,以便能夠使用適當的本地索引等
insert into localTableOnA (col1,col2,..)
select col1,col2,... from [dbname].dbo.[tablename] --on ServerA
insert into localTableOnA (col1,col2,..)
select col1,col2,... from openquery([ServerB],'select col1,col2,... from [dbname].dbo. [tablame]')
insert into localTableOnA (col1,col2,..)
select col1,col2,... from openquery([ServerC],'select col1,col2,... from [dbname].dbo.[tablename]'/span>)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/314830.html
標籤:
