Compartir vía


Introducción a las variables SQLCMD

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Base de datos de Azure SQL de Microsoft Fabric

Las variables SQLCMD se usan en proyectos SQL para crear tokens reemplazables dinámicamente en objetos y scripts SQL. Los valores de estas variables se establecen en el momento de la implementación y se pueden usar para establecer valores dinámicamente en un proyecto SQL. Los valores de las variables SQLCMD se pueden establecer en la acción de publicación o a través de un perfil de publicación.

Captura de pantalla de la variable EnvironmentName de SQLCMD no establecida hasta la implementación.

Ejemplo y sintaxis del archivo de proyecto SQL

Las variables SQLCMD se definen en el archivo .sqlproj en un elemento <ItemGroup>. En este ejemplo, la variable EnvironmentName se define con un valor predeterminado de testing:

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

El elemento DefaultValue es opcional. Cuando se proporciona un valor predeterminado, solo se usa para cargar en el cuadro de diálogo de publicación de herramientas gráficas para proyectos SQL. El valor predeterminado no se compila en el archivo .dacpac y una implementación de línea de comandos sin los valores especificados por un perfil de publicación o la opción /v para especificar valores usará valores vacíos para las variables SQLCMD.

Uso de variables SQLCMD en objetos SQL

Las variables SQLCMD se pueden usar en objetos y scripts SQL ajustando el nombre de la variable en sintaxis $(variableName). Por ejemplo, el siguiente script SQL usa la variable $(EnvironmentName) para controlar el comportamiento del script:

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

Uso de variables SQLCMD en acciones de publicación

Las variables SQLCMD se pueden establecer en tiempo de implementación mediante la opción /v de la herramienta de línea de comandos SqlPackage. Por ejemplo, ejecute el siguiente comando para definir el valor EnvironmentName en la variable production:

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

Adición y uso de variables SQLCMD

Para añadir una variable SQLCMD a un proyecto SQL en Visual Studio, haga clic con el botón derecho en el Explorador de soluciones y seleccione Propiedades. En la pestaña Variables SQLCMD de la ventana Propiedades, especifique el nombre de la variable y, opcionalmente, un valor predeterminado.

Una vez definida la variable, se puede usar en scripts SQL encapsulando el nombre de la variable en sintaxis $(variableName).

Al publicar el proyecto desde Visual Studio, las variables SQLCMD se establecen en el cuadro de diálogo de publicación. Use el botón Cargar valores para cargar los valores predeterminados del proyecto SQL en el cuadro de diálogo.

Para añadir una variable SQLCMD a un proyecto SQL en Visual Studio, haga clic con el botón derecho en el Explorador de soluciones y seleccione Propiedades. En la sección Variables SQLCMD de la ventana de propiedades, especifique el nombre de la variable y, opcionalmente, un valor predeterminado.

Una vez definida la variable, se puede usar en scripts SQL encapsulando el nombre de la variable en sintaxis $(variableName).

Al publicar el proyecto desde Visual Studio, las variables SQLCMD se establecen en el cuadro de diálogo de publicación. Use el botón Cargar valores para cargar los valores predeterminados del proyecto SQL en el cuadro de diálogo.

Para agregar una variable SQLCMD a un proyecto SQL en la extensión Proyectos de base de datos de SQL, haga clic con el botón derecho en el nodo Variables SQLCMD del proyecto en la vista Proyectos de base de datos y seleccione Agregar variable SQLCMD. Especifique el nombre de la variable y, opcionalmente, un valor predeterminado.

Una vez definida la variable, se puede usar en scripts SQL encapsulando el nombre de la variable en sintaxis $(variableName).

Al publicar el proyecto desde la extensión Proyectos de base de datos de SQL, los valores de las variables SQLCMD se cargan automáticamente a partir de los valores predeterminados. Puede proporcionar valores alternativos cuando se le pida que modifique los valores durante el proceso de publicación.

Para agregar una variable SQLCMD a un proyecto SQL, agregue un elemento <ItemGroup> al archivo .sqlproj con un elemento <SqlCmdVariable> para cada variable. El elemento <SqlCmdVariable> incluye el nombre de la variable, un valor predeterminado y un valor que se puede establecer en el momento de la implementación.

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

Una vez definida la variable, se puede usar en scripts SQL encapsulando el nombre de la variable en sintaxis $(variableName).

Al implementar el proyecto desde la línea de comandos, las variables SQLCMD se pueden definir mediante la opción /v de la herramienta de línea de comandos SqlPackage.

Por ejemplo:

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