Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Переменные SQLCMD используются в проектах SQL для создания динамически заменяемых маркеров в объектах и скриптах SQL. Значения этих переменных задаются во время развертывания и могут использоваться для динамического задания значений в проекте SQL. Значения переменных SQLCMD можно задать в действии публикации или с помощью профиля публикации.
Пример и синтаксис файла проекта SQL
В файле .sqlproj переменные SQLCMD определяются в элементе <ItemGroup>. В этом примере переменная EnvironmentName определяется со значением testingпо умолчанию:
...
<ItemGroup>
<SqlCmdVariable Include="EnvironmentName">
<DefaultValue>testing</DefaultValue>
<Value>$(SqlCmdVar__1)</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
Элемент DefaultValue необязательный. Если задано значение по умолчанию, оно используется только для загрузки в диалоговом окне публикации графических инструментов для проектов SQL. Значение по умолчанию не компилируется в файл .dacpac, и развертывание через командную строку без указания значений, определенных профилем публикации или параметром /v, приводит к отсутствии значений для переменных SQLCMD.
Использование переменных SQLCMD в объектах SQL
Переменные SQLCMD можно использовать в объектах и скриптах SQL, упаковав имя переменной в $(variableName) синтаксис. Например, следующий скрипт SQL использует $(EnvironmentName) переменную для управления поведением скрипта:
IF '$(EnvironmentName)' = 'testing'
BEGIN
-- do something
END
Использование переменных SQLCMD в действиях публикации
Переменные SQLCMD можно задать во время развертывания с помощью параметра /v в инструменте командной строки SqlPackage. Например, следующая команда задает для переменной EnvironmentNameproductionзначение :
sqlpackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production
Добавление и использование переменных SQLCMD
Чтобы добавить переменную SQLCMD в проект SQL в Visual Studio, щелкните проект правой кнопкой мыши в Обозреватель решений и выберите "Свойства". На вкладке переменных SQLCMD в окне свойств укажите имя переменной и при необходимости значение по умолчанию.
После определения переменной его можно использовать в скриптах SQL, упаковав имя переменной в $(variableName) синтаксис.
При публикации проекта из Visual Studio переменные SQLCMD задаются в диалоговом окне публикации. Нажмите кнопку "Загрузить значения" , чтобы загрузить значения по умолчанию из проекта SQL в диалоговое окно.
Чтобы добавить переменную SQLCMD в проект SQL в Visual Studio, щелкните проект правой кнопкой мыши в Обозреватель решений и выберите "Свойства". В разделе переменных SQLCMD в окне свойств укажите имя переменной и при необходимости значение по умолчанию.
После определения переменной его можно использовать в скриптах SQL, упаковав имя переменной в $(variableName) синтаксис.
При публикации проекта из Visual Studio переменные SQLCMD задаются в диалоговом окне публикации. Нажмите кнопку "Загрузить значения" , чтобы загрузить значения по умолчанию из проекта SQL в диалоговое окно.
Чтобы добавить переменную SQLCMD в проект SQL в расширении SQL Database Projects, щелкните правой кнопкой мыши узел SQLCMD Variables под проектом в представлении Database Projects и выберите «Add SQLCMD Variable». Укажите имя переменной и при необходимости значение по умолчанию.
После определения переменной его можно использовать в скриптах SQL, упаковав имя переменной в $(variableName) синтаксис.
При публикации проекта из расширения База данных SQL Projects значения переменных SQLCMD автоматически загружаются из значений по умолчанию. Вы можете предоставить альтернативные значения при появлении запроса на изменение значений во время процесса публикации.
Чтобы добавить переменную SQLCMD в проект SQL, добавьте элемент <ItemGroup> в файл .sqlproj и элемент <SqlCmdVariable> для каждой переменной. Элемент <SqlCmdVariable> содержит имя переменной, значение по умолчанию и значение, которое можно задать во время развертывания.
<ItemGroup>
<SqlCmdVariable Include="EnvironmentName">
<DefaultValue>testing</DefaultValue>
<Value>$(SqlCmdVar__1)</Value>
</SqlCmdVariable>
</ItemGroup>
После определения переменной его можно использовать в скриптах SQL, упаковав имя переменной в $(variableName) синтаксис.
При развертывании проекта из командной строки переменные SQLCMD можно задать с помощью /v параметра в средстве командной строки SqlPackage .
Рассмотрим пример.
SqlPackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production