在sql脚本中指定服务器

ama*_*eur 14 sql database sql-server sql-server-2008

我正在为sql server 2008编写一个sql脚本,我在开头放置一个use语句,指定应该运行脚本的数据库:

use [my_database]
Run Code Online (Sandbox Code Playgroud)

由于我有不同的环境,其中存在相同的数据库,例如dev,qa,prod,我有什么办法可以在脚本中为脚本指定环境,可以是服务器名称或IP地址,也可以是任何其他机制.

Fil*_*Vos 25

您可以将SQL Management Studio置于SQLCMD模式,并使用该:CONNECT myserver语句指定服务器.

您可以通过单击下面的图片中的选项来打开命令模式 在此输入图像描述

然后你的脚本会是这样的

    :CONNECT devserver
    use [my_database]
    SELECT * FROM my_table
Run Code Online (Sandbox Code Playgroud)

您甚至可以在执行期间使查询窗口切换服务器

    :CONNECT devserver
    use [my_database]
    SELECT * FROM my_table
    GO
    :CONNECT uatserver
    use [my_database]
    SELECT * FROM my_table
Run Code Online (Sandbox Code Playgroud)

要连接特定用户和密码,您可以按如下方式指定

    :CONNECT devserver -U myUser -P myPassword
    use [my_database]
    SELECT * FROM my_table
Run Code Online (Sandbox Code Playgroud)

实际上,您可以指定许多选项,这些选项在msdn上有详细记录.


JNK*_*JNK 1

这是一个CONNECTION设置,而不是脚本中的参数。

如果需要,您可以通过批处理文件或 powershell 脚本在不同环境中运行相同的脚本,或者您可以设置链接服务器,但您不能只是说

USE SomeOtherServer

还有安全和网络方面的影响。