我有一个大脚本文件,我需要在另一台服务器上使用它。我需要在开始时使用 Declare 编辑服务器的名称,因此我只能通过更改变量的值在多个服务器上使用相同的脚本。
类似的东西:
Declare @Quell nvarchar(100)
SET @Quell = '[server1].[dbo]'
SELECT * From @Quell.[Documents]
但它没有用。
怎么做?谢谢你
我有一个大脚本文件,我需要在另一台服务器上使用它。我需要在开始时使用 Declare 编辑服务器的名称,因此我只能通过更改变量的值在多个服务器上使用相同的脚本。
类似的东西:
Declare @Quell nvarchar(100)
SET @Quell = '[server1].[dbo]'
SELECT * From @Quell.[Documents]
但它没有用。
怎么做?谢谢你
不幸的是,SQL Server 中不允许使用宏替换,但您可以使用动态 SQL。
Declare @Quell nvarchar(100)
SET @Quell = '[server1].[dbo]'
Declare @SQL varchar(max)
SET @SQL = 'SELECT * From ' + @Quell +'.[Documents]'
Exec(@SQL)
如果从 SQL Server Management Studio 运行脚本,则可以使用 SQLCMD 变量并在 SQLCMD 模式(查询-->SQLCMD 模式)下运行脚本。也可以使用 SQLCMD 命令行实用程序执行 SQLCMD 脚本,并将变量值作为命令行参数传递。
示例脚本:
:SETVAR Quell "[server1].[dbo]"
SELECT * From $(Quell).[Documents];