SQL Server':setvar'错误

时间:2010-04-21 17:07:35

标签: sql sql-server tsql

我试图在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"

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

4 个答案:

答案 0 :(得分:214)

:setvar仅在SQL命令模式下工作,因此您可能在管理工作室中执行正常的SQL并且没有交换到命令模式。

这可以通过SQL Server Management Studio中的用户界面转到“查询”菜单,然后选择“SQLCMD模式”来完成。

答案 1 :(得分:7)

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

enter image description here

答案 2 :(得分:2)

FOR SQL2012:

转到: tools / options / Query Execution并默认选中,在SQLCMD模式下打开新查询。

点击New Query按钮并确保突出显示变量定义,您的脚本现在应该正确运行。

以前的版本:

http://blog.sqlauthority.com/2013/06/28/sql-server-how-to-set-variable-and-use-variable-in-sqlcmd-mode/

答案 3 :(得分:0)

尝试替换:setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap"

使用:

USE [MesProduction_Preloaded_KLM_MesSap]
GO