Поделиться через


Общие сведения о переменных SQLCMD

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL в Microsoft Fabric

Переменные SQLCMD используются в проектах SQL для создания динамически заменяемых маркеров в объектах и скриптах SQL. Значения этих переменных задаются во время развертывания и могут использоваться для динамического задания значений в проекте SQL. Значения переменных SQLCMD можно задать в действии публикации или с помощью профиля публикации.

Снимок экрана: переменная SQLCMD EnvironmentName не задана до развертывания.

Пример и синтаксис файла проекта SQL

Переменные SQLCMD определяются в .sqlproj файле в элементе <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 . Например, следующая команда задает для переменной EnvironmentName productionзначение :

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 Projects, щелкните правой кнопкой мыши узел переменных SQLCMD в представлении проектов баз данных и выберите "Добавить переменную SQLCMD". Укажите имя переменной и при необходимости значение по умолчанию.

После определения переменной его можно использовать в скриптах 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