运行 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]')
我有三个 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]')