Condividi tramite


Panoramica delle variabili SQLCMD

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di Azure SQLDatabase SQL in Microsoft Fabric

Le variabili SQLCMD vengono usate nei progetti SQL per creare token sostituibili in modo dinamico in oggetti e script SQL. I valori di queste variabili vengono impostati in fase di distribuzione e possono essere usati per impostare in modo dinamico i valori in un progetto SQL. I valori per le variabili SQLCMD possono essere impostati nell'azione di pubblicazione o tramite un profilo di pubblicazione.

Screenshot della variabile SQLCMD EnvironmentName non impostata fino alla distribuzione.

Esempio e sintassi del file di progetto SQL

Le variabili SQLCMD vengono definite in un elemento .sqlproj nel file <ItemGroup>. In questo esempio la variabile EnvironmentName viene definita con un valore predefinito di testing:

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

L'elemento DefaultValue è facoltativo. Quando viene specificato un valore predefinito, viene usato solo per il caricamento nella finestra di dialogo di pubblicazione degli strumenti grafici per i progetti SQL. Il valore predefinito non viene compilato nel .dacpac file e una distribuzione della riga di comando senza i valori specificati da un profilo di pubblicazione o l'opzione /v per specificare i valori restituisce valori vuoti per le variabili SQLCMD.

Usare le variabili SQLCMD negli oggetti SQL

Le variabili SQLCMD possono essere usate negli oggetti e negli script SQL eseguendo il wrapping del nome della variabile nella $(variableName) sintassi. Ad esempio, lo script SQL seguente usa la variabile per controllare il $(EnvironmentName) comportamento dello script:

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

Usare le variabili SQLCMD nelle azioni di pubblicazione

Le variabili SQLCMD possono essere impostate in fase di distribuzione usando l'opzione /v nello strumento da riga di comando SqlPackage . Ad esempio, il comando seguente imposta la EnvironmentName variabile su production:

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

Aggiungere e usare variabili SQLCMD

Per aggiungere una variabile SQLCMD a un progetto SQL in Visual Studio, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Proprietà. Nella scheda Variabili SQLCMD della finestra delle proprietà specificare il nome della variabile e facoltativamente un valore predefinito.

Dopo aver definito la variabile, può essere usata negli script SQL eseguendo il wrapping del nome della variabile nella $(variableName) sintassi.

Quando si pubblica il progetto da Visual Studio, le variabili SQLCMD vengono impostate nella finestra di dialogo di pubblicazione. Usare il pulsante Carica valori per caricare i valori predefiniti dal progetto SQL nella finestra di dialogo.

Per aggiungere una variabile SQLCMD a un progetto SQL in Visual Studio, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Proprietà. Nella sezione Variabili SQLCMD della finestra delle proprietà specificare il nome della variabile e facoltativamente un valore predefinito.

Dopo aver definito la variabile, può essere usata negli script SQL eseguendo il wrapping del nome della variabile nella $(variableName) sintassi.

Quando si pubblica il progetto da Visual Studio, le variabili SQLCMD vengono impostate nella finestra di dialogo di pubblicazione. Usare il pulsante Carica valori per caricare i valori predefiniti dal progetto SQL nella finestra di dialogo.

Per aggiungere una variabile SQLCMD a un progetto SQL nell'estensione Progetti di database SQL, fare clic con il pulsante destro del mouse sul nodo Variabili SQLCMD nel progetto nella visualizzazione Progetti di database e scegliere Aggiungi variabile SQLCMD. Specificare il nome della variabile e facoltativamente un valore predefinito.

Dopo aver definito la variabile, può essere usata negli script SQL eseguendo il wrapping del nome della variabile nella $(variableName) sintassi.

Quando si pubblica il progetto dall'estensione Progetti di database SQL, i valori delle variabili SQLCMD vengono caricati automaticamente dai valori predefiniti. È possibile fornire valori alternativi quando viene richiesto di modificare i valori durante il processo di pubblicazione.

Per aggiungere una variabile SQLCMD a un progetto SQL in SQL Server Management Studio (SSMS), fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e selezionare Proprietà. Nella sezione Variabili SQLCMD della finestra delle proprietà specificare il nome della variabile e facoltativamente un valore predefinito.

Dopo aver definito la variabile, può essere usata negli script SQL eseguendo il wrapping del nome della variabile nella $(variableName) sintassi.

Quando si pubblica il progetto da SSMS, le variabili SQLCMD vengono impostate nella finestra di dialogo di pubblicazione.

Per aggiungere una variabile SQLCMD a un progetto SQL, aggiungere un <ItemGroup> elemento al .sqlproj file con un <SqlCmdVariable> elemento per ogni variabile. L'elemento <SqlCmdVariable> include il nome della variabile, un valore predefinito e un valore che può essere impostato in fase di distribuzione.

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

Dopo aver definito la variabile, può essere usata negli script SQL eseguendo il wrapping del nome della variabile nella $(variableName) sintassi.

Quando si distribuisce il progetto dalla riga di comando, le variabili SQLCMD possono essere impostate usando l'opzione /v nello strumento da riga di comando SqlPackage .

Per esempio:

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