运行 SQL 远程服务器中的服务器查询

Running SQL Server query in Remote Server

我有三个 SQL 服务器 A、B 和 C。我正在尝试 运行 来自 A 服务器的 select @@servername 和 运行 相同的查询在来自服务器 A 的 B 和 C 中。我正在将此结果加载到服务器 A table 中。请让我知道如何完成这个。

您可以使用链接服务器。

1- 在实例中

INSERT INTO [DatabaseName].[SchemaName].[TableName] (...) SELECT ... FROM [B].[DatabaseName].[SchemaName].[TableName];
INSERT INTO [DatabaseName].[SchemaName].[TableName] (...) SELECT ... FROM [C].[DatabaseName].[SchemaName].[TableName];

2- 在实例中(动态 SQL)

EXEC ('INSERT INTO [A].[DatabaseName].[SchemaName].[TableName] (...) SELECT ... FROM [DatabaseName].[SchemaName].[TableName]') AT [B];
EXEC ('INSERT INTO [A].[DatabaseName].[SchemaName].[TableName] (...) SELECT ... FROM [DatabaseName].[SchemaName].[TableName]') AT [C];

3- WITHIN 其他实例

INSERT INTO [A].[DatabaseName].[SchemaName].[TableName] (...) SELECT ... FROM [DatabaseName].[SchemaName].[TableName];

您可以使用 OPENQUERY 运行 来自两个远程服务器的插入,这实际上是 运行 在远程服务器本地 select 能够使用适当的本地索引等

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.[tablename]')

insert into localTableOnA (col1,col2,...)
select col1,col2,... from openquery([ServerC],'select col1,col2,... from [dbname].dbo.[tablename]')