Einführung in das SQL Server-Dienstprogramm sqlcmd

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.

Was ist sqlcmd?

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.

sqlcmd mit der Standard-SQL Server-Instanz verbinden

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

sqlcmd mit einer bestimmten Instanz verbinden

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.

sqlcmd mit einer SQL Server-Instanz mithilfe der Windows-Authentifizierung verbinden

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   

sqlcmd mit einer SQL Server-Instanz mithilfe der SQL Server-Authentifizierung verbinden

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]   

 sqlcmd mit einer SQL Server-Instanz über eine dedizierte Administratorverbindung (DAC) verbinden

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.