3

我有一个大脚本文件,我需要在另一台服务器上使用它。我需要在开始时使用 Declare 编辑服务器的名称,因此我只能通过更改变量的值在多个服务器上使用相同的脚本。

类似的东西:

Declare @Quell nvarchar(100)
SET @Quell = '[server1].[dbo]'

SELECT * From @Quell.[Documents] 

但它没有用。

怎么做?谢谢你

4

2 回答 2

6

不幸的是,SQL Server 中不允许使用宏替换,但您可以使用动态 SQL。

Declare @Quell nvarchar(100)
SET @Quell = '[server1].[dbo]'

Declare @SQL varchar(max) 
SET @SQL = 'SELECT * From ' + @Quell +'.[Documents]'
Exec(@SQL)
于 2016-11-09T13:01:51.187 回答
3

如果从 SQL Server Management Studio 运行脚本,则可以使用 SQLCMD 变量并在 SQLCMD 模式(查询-->SQLCMD 模式)下运行脚本。也可以使用 SQLCMD 命令行实用程序执行 SQLCMD 脚本,并将变量值作为命令行参数传递。

示例脚本:

:SETVAR Quell "[server1].[dbo]"

SELECT * From $(Quell).[Documents];
于 2016-11-09T13:16:37.803 回答