SQL Server ': setvar' Ошибка

Я пытаюсь создать несколько переменных script в 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"

Однако, когда я запускаю это, я получаю сообщение об ошибке "Неверный синтаксис рядом с:". Что я делаю неправильно?

Ответ 1

: setvar работает только в режиме командной строки SQL, поэтому вы, возможно, выполняете нормальное выполнение SQL в студии управления и не переключились в командный режим.

Это можно сделать через пользовательский интерфейс в SQL Server Management Studio, перейдя в меню "Запрос" и выбрав "Режим SQLCMD".

Ответ 2

попробуйте заменить :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap"

с:

USE [MesProduction_Preloaded_KLM_MesSap]
GO

Ответ 3

ДЛЯ SQL2012:

перейти к: tools/options/Query Execution и проверить по умолчанию, открыть новые запросы в режиме SQLCMD.

Нажмите кнопку "Новый запрос" и убедитесь, что определения переменных выделены, ваш script должен работать правильно.

Предыдущие версии:

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

Ответ 4

Просто включите режим sqlcmd в SQL Server Management Studio, как описано на следующем рисунке.

введите описание изображения здесь