Compartilhar via


Visão geral das variáveis SQLCMD

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Banco de dados SQL no Microsoft Fabric

As variáveis SQLCMD são usadas em projetos SQL para criar tokens substituíveis dinamicamente em objetos e scripts SQL. Os valores dessas variáveis são definidos no momento da implantação e podem ser usados para definir valores dinamicamente em um projeto SQL. Os valores para variáveis SQLCMD podem ser definidos na ação de publicação ou por meio de um perfil de publicação.

Captura de tela da variável SQLCMD EnvironmentName não definida até a implantação.

Exemplo e sintaxe do arquivo de projeto SQL

As variáveis SQLCMD são definidas no arquivo .sqlproj em um item <ItemGroup>. Neste exemplo, a variável EnvironmentName é definida com um valor padrão de testing:

...
  <ItemGroup>
    <SqlCmdVariable Include="EnvironmentName">
      <DefaultValue>testing</DefaultValue>
      <Value>$(SqlCmdVar__1)</Value>
    </SqlCmdVariable>
  </ItemGroup>
</Project>

O elemento DefaultValue é opcional. Quando um valor padrão é fornecido, ele só é usado para carregar na caixa de diálogo de publicação de ferramentas gráficas para projetos SQL. O valor padrão não é compilado no arquivo .dacpac e uma implantação de linha de comando sem os valores especificados por um perfil de publicação ou a opção /v para especificar valores resulta em valores vazios para as variáveis SQLCMD.

Usar variáveis SQLCMD em objetos SQL

As variáveis SQLCMD podem ser usadas em objetos e scripts SQL encapsulando o nome da variável na sintaxe $(variableName). Por exemplo, o script SQL a seguir usa a variável $(EnvironmentName) para controlar o comportamento do script:

IF '$(EnvironmentName)' = 'testing'
BEGIN
    -- do something
END

Usar variáveis SQLCMD em ações de publicação

As variáveis SQLCMD podem ser definidas no momento da implantação usando a opção /v na ferramenta de linha de comando SqlPackage. Por exemplo, o comando a seguir define a variável EnvironmentName como production:

sqlpackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production

Adicionar e usar variáveis SQLCMD

Para adicionar uma variável SQLCMD a um projeto SQL no Visual Studio, clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Propriedades. Na guia Variáveis SQLCMD da janela Propriedades, especifique o nome da variável e, opcionalmente, um valor padrão.

Uma vez que a variável é definida, ela pode ser usada em scripts SQL, envolvendo o nome da variável na sintaxe $(variableName).

Quando você publica o projeto do Visual Studio, as variáveis SQLCMD são definidas na caixa de diálogo de publicação. Use o botão Carregar Valores para carregar os valores padrão do projeto SQL na caixa de diálogo.

Para adicionar uma variável SQLCMD a um projeto SQL no Visual Studio, clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Propriedades. Na seção Variáveis SQLCMD da janela Propriedades, especifique o nome da variável e, opcionalmente, um valor padrão.

Uma vez que a variável é definida, ela pode ser usada em scripts SQL, envolvendo o nome da variável na sintaxe $(variableName).

Quando você publica o projeto do Visual Studio, as variáveis SQLCMD são definidas na caixa de diálogo de publicação. Use o botão Carregar Valores para carregar os valores padrão do projeto SQL na caixa de diálogo.

Para adicionar uma variável SQLCMD a um projeto SQL na extensão de Projetos de Banco de Dados SQL, clique com o botão direito do mouse no nó Variáveis SQLCMD no projeto na exibição Projetos de Banco de Dados e selecione Adicionar Variável SQLCMD. Especifique o nome da variável e, opcionalmente, um valor padrão.

Uma vez que a variável é definida, ela pode ser usada em scripts SQL, envolvendo o nome da variável na sintaxe $(variableName).

Quando você publica o projeto da extensão Projetos de Banco de Dados SQL, os valores das variáveis SQLCMD são carregados automaticamente a partir dos valores padrão. É possível fornecer valores alternativos quando for solicitado que você modifique os valores durante o processo de publicação.

Para adicionar uma variável SQLCMD a um projeto SQL, adicione um item <ItemGroup> ao arquivo .sqlproj com um item <SqlCmdVariable> para cada variável. O item <SqlCmdVariable> inclui o nome da variável, um valor padrão e um valor que pode ser definido no momento da implantação.

<ItemGroup>
    <SqlCmdVariable Include="EnvironmentName">
        <DefaultValue>testing</DefaultValue>
        <Value>$(SqlCmdVar__1)</Value>
    </SqlCmdVariable>
</ItemGroup>

Uma vez que a variável é definida, ela pode ser usada em scripts SQL, envolvendo o nome da variável na sintaxe $(variableName).

Quando você implanta o projeto na linha de comando, as variáveis SQLCMD podem ser definidas usando a opção /v na ferramenta de linha de comando SqlPackage.

Por exemplo:

SqlPackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production