SQL Server':setvar'错误

Ran*_*der 118 sql t-sql sql-server

我试图在T-SQL中创建一些脚本变量,如下所示:

    /*
    Deployment script for MesProduction_Preloaded_KLM_MesSap
    */

    GO
    SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;

    SET NUMERIC_ROUNDABORT OFF;


    GO
    :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我收到一条错误,指出'语法不正确':'.我究竟做错了什么?

And*_*rew 224

:setvar仅适用于SQL命令模式,因此您可能在管理工作室中执行正常的SQL并且未交换到命令模式.

这可以通过SQL Server Management Studio中的用户界面进行,方法是转到"查询"菜单,然后选择"SQLCMD模式".

  • 使用Visual Studio的时,这也是一个问题:数据>架构比较实用程序.如果从实用程序中运行生成的更改脚本,则可以正常运行,但如果您决定在执行比较后导出/ xcopy更改脚本,然后尝试将生成的更改脚本导入/粘贴到SSMS中,则如上所述将失败.显然,如果您在捆绑部署中包含db更改脚本,这也可能是一个问题.因此,您需要在通过上述菜单运行脚本之前打开SQL命令模式,或者确保自定义安装脚本在运行之前执行此操作. (19认同)
  • 在Visual Studio(2013)中:SQL菜单 - >执行设置 - > SQLCMD模式 (6认同)

Muh*_*ais 10

只需在SQL Server Management Studio中启用sqlcmd模式,如下图所示.

在此输入图像描述