Udostępnij za pośrednictwem


Omówienie zmiennych SQLCMD

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Database w Microsoft Fabric

Zmienne SQLCMD są używane w projektach SQL do tworzenia dynamicznie zamienialnych tokenów w obiektach SQL i skryptach. Wartości tych zmiennych są ustawiane w czasie wdrażania i mogą służyć do dynamicznego ustawiania wartości w projekcie SQL. Wartości zmiennych SQLCMD można ustawić w akcji publikowania lub za pośrednictwem profilu publikowania.

Zrzut ekranu przedstawiający zmienną SQLCMD o nazwie EnvironmentName, która nie została ustawiona do momentu wdrożenia.

Przykład i składnia pliku projektu SQL

Zmienne SQLCMD są definiowane w pliku .sqlproj w elemencie <ItemGroup>. W tym przykładzie zmienna EnvironmentName jest definiowana z wartością testingdomyślną :

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

Element DefaultValue jest opcjonalny. Po podaniu wartości domyślnej jest ona używana tylko do ładowania w oknie dialogowym publikowania narzędzi graficznych dla projektów SQL. Wartość domyślna nie jest kompilowana do pliku .dacpac i wdrożenie z poziomu wiersza polecenia bez wartości określonych przez profil publikowania lub opcji /v do określenia wartości skutkuje pustymi wartościami dla zmiennych SQLCMD.

Używanie zmiennych SQLCMD w obiektach SQL

Zmienne SQLCMD mogą być używane w obiektach SQL i skryptach, otaczając nazwę zmiennej składnią w formacie $(variableName). Na przykład następujący skrypt SQL używa zmiennej do kontrolowania $(EnvironmentName) zachowania skryptu:

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

Używanie zmiennych SQLCMD w akcjach publikowania

Zmienne SQLCMD można ustawiać podczas wdrażania przy użyciu opcji /v w narzędziu wiersza polecenia SqlPackage. Na przykład następujące polecenie ustawia zmienną na EnvironmentNameproduction:

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

Dodawanie i używanie zmiennych SQLCMD

Aby dodać zmienną SQLCMD do projektu SQL w programie Visual Studio, kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz polecenie Właściwości. Na karcie Zmienne SQLCMD okna właściwości określ nazwę zmiennej i opcjonalnie wartość domyślną.

Po zdefiniowaniu zmiennej można jej używać w skryptach SQL, opakowując nazwę zmiennej w $(variableName) składni.

Podczas publikowania projektu z programu Visual Studio zmienne SQLCMD są ustawiane w oknie dialogowym publikowania. Użyj przycisku Załaduj wartości , aby załadować wartości domyślne z projektu SQL do okna dialogowego.

Aby dodać zmienną SQLCMD do projektu SQL w programie Visual Studio, kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz polecenie Właściwości. W sekcji Zmienne SQLCMD okna właściwości określ nazwę zmiennej i opcjonalnie wartość domyślną.

Po zdefiniowaniu zmiennej można jej używać w skryptach SQL, opakowując nazwę zmiennej w $(variableName) składni.

Podczas publikowania projektu z programu Visual Studio zmienne SQLCMD są ustawiane w oknie dialogowym publikowania. Użyj przycisku Załaduj wartości , aby załadować wartości domyślne z projektu SQL do okna dialogowego.

Aby dodać zmienną SQLCMD do projektu SQL w rozszerzeniu Sql Database Projects, kliknij prawym przyciskiem myszy węzeł Zmienne SQLCMD w projekcie w widoku Projekty bazy danych i wybierz polecenie Dodaj zmienną SQLCMD. Określ nazwę zmiennej i opcjonalnie wartość domyślną.

Po zdefiniowaniu zmiennej można jej używać w skryptach SQL, opakowując nazwę zmiennej w $(variableName) składni.

Podczas publikowania projektu z rozszerzenia SQL Database Projects wartości zmiennych SQLCMD są automatycznie ładowane z wartości domyślnych. Po wyświetleniu monitu o zmodyfikowanie wartości podczas procesu publikowania można podać alternatywne wartości.

Aby dodać zmienną SQLCMD do projektu SQL, dodaj <ItemGroup> element do .sqlproj pliku z elementem <SqlCmdVariable> dla każdej zmiennej. Element <SqlCmdVariable> zawiera nazwę zmiennej, wartość domyślną i wartość, którą można ustawić w czasie wdrażania.

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

Po zdefiniowaniu zmiennej można jej używać w skryptach SQL, opakowując nazwę zmiennej w $(variableName) składni.

Podczas wdrażania projektu z poziomu wiersza polecenia zmienne SQLCMD można ustawić przy użyciu /v opcji w narzędziu wiersza polecenia SqlPackage .

Przykład:

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