Översikt över SQLCMD-variabler

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

SQLCMD-variabler används i SQL-projekt för att skapa dynamiskt utbytbara token i SQL-objekt och skript. Värdena för dessa variabler anges vid distributionstillfället och kan användas för att dynamiskt ange värden i ett SQL-projekt. Värden för SQLCMD-variabler kan anges i publiceringsåtgärden eller via en publiceringsprofil.

Skärmbild av SQLCMD-variabeln EnvironmentName som inte har angetts förrän distributionen.

EXEMPEL och syntax för SQL-projektfil

SQLCMD-variabler definieras i .sqlproj filen under ett <ItemGroup> objekt. I det här exemplet definieras variabeln EnvironmentName med standardvärdet testing:

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

Elementet DefaultValue är valfritt. När ett standardvärde anges används det endast i publiceringsdialogen för grafiska verktyg inom SQL-projekt. Standardvärdet kompileras inte till .dacpac filen och en kommandoradsdistribution utan de värden som anges av en publiceringsprofil eller /v alternativet för att ange värden resulterar i tomma värden för SQLCMD-variablerna.

Använda SQLCMD-variabler i SQL-objekt

SQLCMD-variabler kan användas i SQL-objekt och skript genom att omsluta variabelnamnet i $(variableName) syntaxen. Följande SQL-skript använder till exempel variabeln $(EnvironmentName) för att styra skriptbeteendet:

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

Använda SQLCMD-variabler i publiceringsåtgärder

SQLCMD-variabler kan anges vid distributionstillfället med hjälp av /v alternativet i kommandoradsverktyget SqlPackage . Följande kommando anger till exempel variabeln EnvironmentName till production:

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

Lägga till och använda SQLCMD-variabler

Om du vill lägga till en SQLCMD-variabel i ett SQL-projekt i Visual Studio högerklickar du på projektet i Solution Explorer och väljer Egenskaper. På fliken SQLCMD-variabler i egenskapsfönstret anger du variabelnamnet och eventuellt ett standardvärde.

När variabeln har definierats kan den användas i SQL-skript genom att omsluta variabelnamnet i $(variableName) syntaxen.

När du publicerar projektet från Visual Studio anges SQLCMD-variabler i publiceringsdialogrutan. Använd knappen Läs in värden för att läsa in standardvärdena från SQL-projektet i dialogrutan.

Om du vill lägga till en SQLCMD-variabel i ett SQL-projekt i Visual Studio högerklickar du på projektet i Solution Explorer och väljer Egenskaper. I avsnittet SQLCMD-variabler i egenskapsfönstret anger du variabelnamnet och eventuellt ett standardvärde.

När variabeln har definierats kan den användas i SQL-skript genom att omsluta variabelnamnet i $(variableName) syntaxen.

När du publicerar projektet från Visual Studio anges SQLCMD-variabler i publiceringsdialogrutan. Använd knappen Läs in värden för att läsa in standardvärdena från SQL-projektet i dialogrutan.

Om du vill lägga till en SQLCMD-variabel i ett SQL-projekt i SQL Database Projects-tillägget högerklickar du på noden SQLCMD-variabler under projektet i vyn Databasprojekt och väljer Lägg till SQLCMD-variabel. Ange variabelnamnet och eventuellt ett standardvärde.

När variabeln har definierats kan den användas i SQL-skript genom att omsluta variabelnamnet i $(variableName) syntaxen.

När du publicerar projektet från SQL Database Projects-tillägget läses VÄRDEN för SQLCMD-variabler automatiskt in från standardvärdena. Du kan ange alternativa värden när du uppmanas att ändra värdena under publiceringsprocessen.

Om du vill lägga till en SQLCMD-variabel i ett SQL-projekt lägger du till ett <ItemGroup> objekt i .sqlproj filen med ett <SqlCmdVariable> objekt för varje variabel. Objektet <SqlCmdVariable> innehåller variabelnamnet, ett standardvärde och ett värde som kan anges vid distributionstillfället.

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

När variabeln har definierats kan den användas i SQL-skript genom att omsluta variabelnamnet i $(variableName) syntaxen.

När du distribuerar projektet från kommandoraden kan SQLCMD-variabler anges med hjälp av /v alternativet i kommandoradsverktyget SqlPackage .

Till exempel:

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