Я работаю с 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 Недопустимое имя столбца «Продажи».
Как решить эту проблему?