как использовать переданную переменную из sqlcmd с помощью -v в операторе if sql скрипта - PullRequest
0 голосов
/ 07 мая 2020

Я работаю с Microsoft SQL Server 2016 сервером. Предположим, что имя сервера - ServerA , а имя базы данных - DatabaseA .

Я хочу написать сценарий sql, который будет принимать параметр. В зависимости от значения этого параметра сценарий sql может выполнять различные операторы SQL.

Я буду вызывать сценарий sql из sqlcmd, передавая параметр с помощью параметра -v.

Итак, я написал свой SQL скрипт ProjectType.sql. Имя параметра - ProjectType. Это основная c идея SQL:

if $(ProjectType) = 'Sales'
begin
    -- my 1st set of sql statements
    select count(*) 'person_count' from person;
end
else if $(ProjectType) = 'Support'
begin
    -- my 2nd set of sql statements
    select count(*) 'employee_count' from employee;
end

Затем я пытаюсь запустить с помощью sqlcmd

sqlcmd -S ServerA -d DatabaseA -v ProjectType="Sales" -i ProjectType.sql

Но я получил сообщение об ошибке:

Сообщение 156, уровень 15, состояние 1, сервер ServerA, строка 1 Недопустимое имя столбца "Продажи".

Сообщение 102, уровень 15, состояние 1, сервер ServerA, строка 6 Недопустимое имя столбца «Продажи».

Как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...