GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von Variablen in SQLCMD für Linux

In der RTP-Version (11.0.1790.0) ist der -v switch erscheint nicht in der Liste der Parameter, wenn sqlcmd -? ausgeführt wird . Anscheinend wird diese Option von der Linux-Version des Tools nicht unterstützt.
Soweit ich das beurteilen kann, funktioniert das Importieren von Parameterwerten aus Umgebungsvariablen auch nicht.

Wenn Sie eine Problemumgehung benötigen, besteht eine Möglichkeit darin, einen oder mehrere :setvar zu verketten Anweisungen mit der Textdatei, die die Befehle enthält, die Sie in einer neuen Datei ausführen möchten, und führen Sie dann die neue Datei aus. Basierend auf Ihrem Beispiel:

echo :setvar param1 DUMMYVALUE > param_input.sql
cat input.sql >> param_input.sql
sqlcmd -S server -d database -U user -P pass -i param_input.sql 

Sie können die Variable in Linux exportieren. Danach müssen Sie die Variable nicht mehr in sqlcmd übergeben . Ich habe jedoch bemerkt, dass Sie Ihr SQL-Skript ändern und den :setvar entfernen müssen Befehl, wenn er keinen Standardwert hat.

export dbName=xyz
sqlcmd -Uusername -Sservername -Ppassword -i script.sql


:setvar dbName  --remove this line
USE [$(dbName)]
GO

Sie müssen keine Variablen an sqlcmd übergeben. Es wählt automatisch aus Ihren Shell-Variablen aus:z. B.

export param1=DUMMYVALUE

sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql


Linux
  1. Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

  2. 7 praktische Tricks zur Verwendung des Linux-wget-Befehls

  3. Verwenden von ssh-keygen und Sharing für die schlüsselbasierte Authentifizierung in Linux

  4. Simulieren des Key Press-Ereignisses mit Python für Linux

  5. Ist SQL Server Express für die Produktion unter Linux verfügbar?

Eine Einführung in bpftrace für Linux

Auswählen eines Druckers für Linux

Tipps zur Verwendung des Top-Befehls unter Linux

Verwenden von ifstat für Linux-Netzwerkstatistiken

Das vollständige Handbuch zur Verwendung von ffmpeg unter Linux

Linux-Umgebungsvariablen