如何在两个服务器之间共享全局变量



与标题中一样,我想共享全局变量 @@版本在SQL Server中的两个链接服务器之间。

我该如何使用

(例如 (做到这一点
SET @Ver = SUBSTRING (@@VERSION, 22, 7)

您无法在两个服务器之间共享变量。但是,如果将服务器设置为链接服务器,则可以使用OPENQUERY。例如:

SELECT *
FROM OPENQUERY(OtherServer,
               'SELECT @@VERSION AS Version');

其中 OtherServer是另一台服务器的链接服务器对象的名称(不一定是服务器的名称(。如果您没有将它们作为链接服务器,则可以使用OPENROWSET。例如:

SELECT *
FROM OPENROWSET('SQLNCLI',
                'Server=OtherServer;Trusted_Connection=YES;',
                'SELECT @@VERSION AS Version');

其中 OtherServer是另一台服务器的实际名称。如果命名实例,您也需要包括其中。例如,Server=sqldevSandbox将是在服务器sqldev上运行的Sandbox

如果要将其设置为变量的值,那么您会像其他任何作业一样进行:

DECLARE @SQLVersion varchar(500);
SELECT @SQLVersion = [Version]
FROM OPENROWSET('SQLNCLI',
                'Server=OtherServer;Trusted_Connection=YES;',
                'SELECT @@VERSION AS Version');
PRINT @SQLVersion;

我想到的第一件事是桌子和链接的服务器。在服务器A上,创建一个global_variables表,并以适合您的格式存储在该表中。然后,在服务器B上,您可以通过查询服务器a。

上的新表格来设置与global_variables表中值相等的局部变量。

如果您需要在B上对变量进行更改,则可以在a链接上更新A上的global_variables表,因为服务器已链接。

相关内容

  • 没有找到相关文章

最新更新