In diesem Beitrag werden wir uns mit sqlcmd
beschäftigen und Ihnen einen Einblick in dieses Tool und dessen Verwendung geben.
Das Dienstprogramm sqlcmd
wird im Vergleich zu SQL Server Management Studio(SSMS) nicht häufig verwendet, es gibt jedoch Fälle in denen sqlcmd
ein bessere Option ist, z.B. wenn Sie SQL Server unter Linux ausführen.
sqlcmd
ist ein Dienstprogramm, das bei der Installation von SQL Server mit den Client-Tools installiert wird. Mit diesem Tool können Sie Transact-SQL-Anweisungen, gespeicherte Prozeduren und Skriptdateien an der Konsole ausführen. Außerdem können Sie vordefinierte Systemvariablen verwenden und Ihre eigenen Benutzervariablen definieren. Dadurch, dass sqlcmd
die Ausführung gespeicherter Prozeduren erlaubt, wird die Ausführung von SQL Server-Agent-Jobs oder Jobschritten ermöglicht.
Ein weiterer bemerkenswerter Aspekt von sqlcmd
ist, dass es Verbindungen zu jeder Version von SQL Server zulässt, was mit SSMS nicht möglich ist. Der Grund dafür ist, dass sqlcmd
den ODBC-Treiber anstelle des .NET System.Data.SqlClient-Namespace verwendet, der Teil von ADO.NET ist, das von SSMS verwendet wird.
Wenn Sie mithilfe der Windows-Authentifizierung eine Verbindung zu einem lokalen Server herstellen und Ihr aktueller Benutzer über Zugriffsrechte verfügt, können Sie sqlcmd
einfach wie folgt an der Eingabeaufforderung aufrufen und werden mit der Standardinstanz verbunden.
sqlcmd
Wenn Sie eine Verbindung zu einer benannten Instanz herstellen möchten, rufen Sie mit folgendem Befehl, der zusätzlich den Instanznamen (in unserem Fall sql_server_2019
) enthält, sqlcmd in der Eingabeaufforderung auf:
sqlcmd -S .\sql_server_2019
Die 1>
gibt die Zeilennummer an, die sich jedes Mal, wenn Sie ENTER
drücken erhöht und nach dem GO
-Befehl erneut bei 1 startet.
Auf dem obigen Bild sehen Sie, dass sich die Zeilennummer erhöht, bis die Anweisung GO
eingegeben wird. Anschließend kehrt die sqlcmd
-Eingabeaufforderung nach Ausführung des Codes zu Zeile 1 zurück.
Wenn Sie Active Directory verwenden, können Sie mithilfe der Trusted Authentication
eine Verbindung zu einem Remote- oder lokalen Server herstellen. Hierzu müssen Sie nur den Server- und Instanznamen mit den Optionen –S
und –E
angeben. Die Trusted Authentication bezeichnet die Verwendung des Windows-Anmeldekontos zur Authentifizierung des Benutzers in verschiedenen Anwendungen.
Mit folgender Eingabe können Sie eine Verbindung zu einer Instanz unter Verwendung der Trusted Authentication herstellen:
sqlcmd -S [SERVERNAME\INSTANCE] -E
Wenn Sie eine Verbindung mithilfe der SQL Server-Authentifizierung herstellen wollen, müssen Sie außerdem die Option –U mit dem Benutzernamen und –P mit dem Kennwort des Benutzers wie folgt angeben:
sqlcmd -S [SERVERNAME\INSTANCE] –U [username] –P [password]
Unter bestimmten Umständen können Sie beispielsweise aufgrund von Ressourcenmangel keine Verbindung zu SQL Server herstellen. SQL Server verfügt über einen Scheduler, der in diesen Fällen den Zugriff auf nur eine Verbindung ermöglicht. Dies ist die Dedicated Administrator Connection (DAC)
. Sie können sich nicht wie bei SSMS mit dem DAC verbinden, da SSMS zwei Verbindungen verwendet, eine für den Objekt-Explorer und eine für das Abfragefenster. In diesen Fällen ist sqlcmd eine der besten Möglichkeiten, um eine Verbindung zur SQL Server-Instanz herzustellen und die erforderlichen Schritte auszuführen, um die Instanz in den normalen Zustand zurückzusetzen.
Um mit dem DAC
mit sqlcmd
eine Verbindung zu einer SQL Server-Instanz herzustellen, müssen Sie die Option –A hinzufügen .
Wenn Sie eine Verbindung mit einem Windows-Login herstellen, rufen Sie sqlcmd
wie folgt auf:
sqlcmd -S [SERVERNAME\INSTANCE] –E -A
Wenn Sie eine SQL Server-Anmeldung verwenden möchten, müssen Sie sqlcmd
folgendermaßen aufrufen:
sqlcmd -S [SERVERNAME\INSTANCE] –U [username] –P [password] -A
In diesem Beitrag haben Sie einen kleinen Einblick in die Verwendung von sqlcmd
bekommen und wissen nun wie Sie das Dienstprogramm als SSMS-Alternative nutzen können.
Kontaktieren Sie uns gerne über das
Kontaktformular und vereinbaren ein unverbindliches
Beratungsgespräch mit unseren Berater:innen zur
Bedarfsevaluierung. Gemeinsam optimieren wir Ihre
Umgebung und steigern Ihre Performance!
Wir freuen uns auf Ihre Kontaktaufnahme!