与标题中一样,我想共享全局变量 @@版本在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表,因为服务器已链接。