Delen via


Overzicht van SQLCMD-variabelen

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

SQLCMD-variabelen worden gebruikt in SQL-projecten om dynamisch vervangbare tokens te maken in SQL-objecten en -scripts. De waarden van deze variabelen worden ingesteld tijdens de implementatie en kunnen worden gebruikt om dynamisch waarden in te stellen in een SQL-project. Waarden voor SQLCMD-variabelen kunnen worden ingesteld in de publicatieactie of via een publicatieprofiel.

Schermopname van de SQLCMD-variabele EnvironmentName die niet is ingesteld tot de implementatie begint.

Voorbeeld van SQL-projectbestand en syntaxis

SQLCMD-variabelen worden gedefinieerd in het .sqlproj bestand onder een <ItemGroup> item. In dit voorbeeld wordt de variabele EnvironmentName gedefinieerd met een standaardwaarde van testing:

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

Het DefaultValue element is optioneel. Wanneer er een standaardwaarde wordt opgegeven, wordt deze alleen gebruikt om te laden in het publicatiedialoogvenster van grafische hulpprogramma's voor SQL-projecten. De standaardwaarde wordt niet gecompileerd in het .dacpac bestand en een opdrachtregelimplementatie zonder de waarden die zijn opgegeven door een publicatieprofiel of de /v optie om waarden op te geven, resulteert in lege waarden voor de SQLCMD-variabelen.

SQLCMD-variabelen gebruiken in SQL-objecten

SQLCMD-variabelen kunnen worden gebruikt in SQL-objecten en -scripts door de naam van de variabele in syntaxis te $(variableName) verpakken. Het volgende SQL-script gebruikt bijvoorbeeld de variabele om het $(EnvironmentName) gedrag van scripts te beheren:

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

SQLCMD-variabelen gebruiken in publicatieacties

SQLCMD-variabelen kunnen tijdens de implementatie worden ingesteld met behulp van de /v optie in het opdrachtregelprogramma SqlPackage . Met de volgende opdracht wordt de EnvironmentName variabele bijvoorbeeld ingesteld op production:

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

SQLCMD-variabelen toevoegen en gebruiken

Als u een SQLCMD-variabele wilt toevoegen aan een SQL-project in Visual Studio, klikt u met de rechtermuisknop op het project in Solution Explorer en selecteert u Eigenschappen. Geef op het tabblad SQLCMD-variabelen van het eigenschappenvenster de naam van de variabele en desgewenst een standaardwaarde op.

Zodra de variabele is gedefinieerd, kan deze worden gebruikt in SQL-scripts door de naam van de variabele in syntaxis te $(variableName) verpakken.

Wanneer u het project publiceert vanuit Visual Studio, worden SQLCMD-variabelen ingesteld in het publicatiedialoogvenster. Gebruik de knop Waarden laden om de standaardwaarden uit het SQL-project in het dialoogvenster te laden.

Als u een SQLCMD-variabele wilt toevoegen aan een SQL-project in Visual Studio, klikt u met de rechtermuisknop op het project in Solution Explorer en selecteert u Eigenschappen. Geef in het gedeelte SQLCMD-variabelen van het eigenschappenvenster de naam van de variabele en desgewenst een standaardwaarde op.

Zodra de variabele is gedefinieerd, kan deze worden gebruikt in SQL-scripts door de naam van de variabele in syntaxis te $(variableName) verpakken.

Wanneer u het project publiceert vanuit Visual Studio, worden SQLCMD-variabelen ingesteld in het publicatiedialoogvenster. Gebruik de knop Waarden laden om de standaardwaarden uit het SQL-project in het dialoogvenster te laden.

Als u een SQLCMD-variabele wilt toevoegen aan een SQL-project in de extensie SQL Database Projects, klikt u met de rechtermuisknop op het knooppunt SQLCMD-variabelen onder het project in de weergave Databaseprojecten en selecteert u SQLCMD-variabele toevoegen. Geef de naam van de variabele en eventueel een standaardwaarde op.

Zodra de variabele is gedefinieerd, kan deze worden gebruikt in SQL-scripts door de naam van de variabele in syntaxis te $(variableName) verpakken.

Wanneer u het project publiceert vanuit de extensie SQL Database Projects, worden waarden voor SQLCMD-variabelen automatisch geladen vanuit de standaardwaarden. U kunt alternatieve waarden opgeven wanneer u wordt gevraagd de waarden tijdens het publicatieproces te wijzigen.

Als u een SQLCMD-variabele wilt toevoegen aan een SQL-project, voegt u een <ItemGroup> item toe aan het .sqlproj bestand met een <SqlCmdVariable> item voor elke variabele. Het <SqlCmdVariable> item bevat de naam van de variabele, een standaardwaarde en een waarde die tijdens de implementatie kan worden ingesteld.

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

Zodra de variabele is gedefinieerd, kan deze worden gebruikt in SQL-scripts door de naam van de variabele in syntaxis te $(variableName) verpakken.

Wanneer u het project vanaf de opdrachtregel implementeert, kunnen SQLCMD-variabelen worden ingesteld met behulp van de /v optie in het opdrachtregelprogramma SqlPackage .

Voorbeeld:

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