将服务器名称声明为MS Sql Server 2016中的变量

Sam*_*our 2 sql sql-server declare server-name

我的脚本文件很大,需要在另一台服务器上使用。我需要在开始时使用Declare编辑服务器的名称,以便仅通过更改变量的值就可以在多个服务器上使用相同的脚本。

像这样的东西:

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

SELECT * From @Quell.[Documents] 
Run Code Online (Sandbox Code Playgroud)

但是没有用。

怎么做?谢谢

Joh*_*tti 5

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

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

Declare @SQL varchar(max) 
SET @SQL = 'SELECT * From ' + @Quell +'.[Documents]'
Exec(@SQL)
Run Code Online (Sandbox Code Playgroud)