Visual Studio: используйте переменные SQLCMD для изменения типов БД во время развертывания
У нас есть проект БД в Visual Studio, и он производит .файл dacpac. Затем мы используем этот dacpac с sqlcommand.exe для развертывания нашей базы данных. Наше требование состоит в том, чтобы иметь возможность изменять типы столбцов во время развертывания, так же как мы можем изменить имя базы данных с помощью команды sqlcommand.exe-переключатели. Например:
:setvar CHARTYPE "VARCHAR"
ALTER TABLE tempTable ADD newColumn $(CHARTYPE)(200);
--or
DECLARE @tempVar $(CHARTYPE)(200);
Этот SQL отлично работает через SSMS, однако попытка сделать это через Visual Studio оказывается трудной.
Я создал переменную SqlCmd в свойствах проекта и я использую его в теле хранимой процедуры:
DECLARE @TempVar $(CHARTYPE)(100)
Но это не работает. Мой проект БД не строится и выдает синтаксическую ошибку в @TempVar.
Если я использую переменную SqlCmd в кавычках ' $(CHARTYPE)', это нормально и выглядит как строковый литерал 'VARCHAR'.
Я включил режим SqlCmd при построении проекта, и это ничего не изменило. Как заставить Visual Studio понять, что я использую переменные SqlCmd?