2015-06-22 65 views
1

我有一大堆,我需要他们的信息,如服务器名和实例名,并添加所有这些信息到我使用SQLCMD连接到服务器X服务器X的表服务器,这里是一个简单的代码:TSQL中的静态变量?

declare @servername varchar(30) 
set @[email protected]@servername 
:connect to X 
insert into X.table values(@servername) 

所以我认为@servername获取当前服务器名,然后它到第3行并将其添加到新的服务器(服务器X),但我错了,一旦它连接到服务器X它检索数据(@servername)这台服务器。这意味着它无法保存数据。所以我的问题是如何从旧服务器保存数据,而不是覆盖它,就像Java中的静态变量。

+0

它通常就容易得多了使用脚本语言 –

+0

我希望我能做到这些的数据库之外,例如,不幸的是我不得不使用TSQL – faranak777

回答

0

如果您事先准备好服务器名称,则可以使用:setvar myvariable variablevalue来设置一个变量,您可以通过$(myvariable)在您的sqlcmd脚本中访问该变量。

在这种情况下,我可能会做一个分隔字符串的服务器名称解析。

查看MSDN https://msdn.microsoft.com/en-us/library/ms188714.aspx,查看更多示例。