Condividi tramite


Panoramica delle variabili SQLCMD

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureDatabase 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, 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