Wie man die SQL Server-Version mit PowerShell überprüft
-
Verwenden Sie das
sqlcmd
-Dienstprogramm, um die SQL Server-Version in PowerShell zu überprüfen -
Vorteile und Nachteile der Verwendung des
sqlcmd
-Dienstprogramms -
Verwenden Sie das
Invoke-Sqlcmd
Cmdlet, um die SQL Server-Version mit PowerShell zu überprüfen -
Vorteile und Nachteile der Verwendung des
Invoke-Sqlcmd
Cmdlets zur Überprüfung der SQL Server-Version in PowerShell -
Unterschied zwischen dem
sqlcmd
-Dienstprogramm und demInvoke-Sqlcmd
Cmdlet - Fazit

Die Überprüfung der Version eines Programms gehört zu den gängigen Vorgängen, die Sie in PowerShell durchführen können. Wenn Sie den Microsoft SQL Server zur Verwaltung relationaler Datenbanken verwenden, ist es wichtig zu wissen, welche Version auf Ihrem Computer installiert ist.
Dieses Tutorial stellt zwei Methoden vor, um die SQL Server-Version mit PowerShell zu überprüfen.
Verwenden Sie das sqlcmd
-Dienstprogramm, um die SQL Server-Version in PowerShell zu überprüfen
Das sqlcmd
ist ein Befehlszeilen-Dienstprogramm, mit dem Sie interaktive Transact-SQL-Anweisungen und -Skripte ausführen können. Es hilft, Transact-SQL-Scripting-Aufgaben zu automatisieren.
Syntax:
sqlcmd -S ServerName\InstanceName -Q "SQL Query"
In der obigen Syntax ersetzen wir ServerName
durch den Namen Ihres SQL Servers, InstanceName
durch den Namen Ihrer SQL Server-Instanz und "SQL Query"
durch die spezifische SQL-Abfrage, die Sie ausführen möchten.
Der folgende Befehl gibt die SQL Server-Version in PowerShell aus. DelftStack
ist der Servername, und SQLEXPRESS
ist der Instanzname unseres SQL Servers.
sqlcmd -S DelftStack\SQLEXPRESS -Q "SELECT @@VERSION"
Wir verwenden das sqlcmd
-Dienstprogramm, das ein Befehlszeilenwerkzeug zum Ausführen von Transact-SQL-Befehlen und -Skripten ist. Es ist eine Möglichkeit, mit SQL Server über die Befehlszeile zu interagieren.
Durch die Verwendung von -S DelftStack\SQLEXPRESS
geben wir den Server und die Instanz an, mit denen wir eine Verbindung herstellen möchten. DelftStack
ist der Servername, und SQLEXPRESS
ist der Instanzname, und diese Kombination identifiziert den spezifischen SQL Server, den wir abfragen möchten.
Der Teil -Q "SELECT @@VERSION"
des Befehls weist SQL Server an, eine SQL-Abfrage auszuführen. In diesem Fall fordern wir den SQL Server auf, seine Versionsinformationen abzurufen.
Die Abfrage SELECT @@VERSION
ist ein integrierter SQL Server-Befehl, der detaillierte Versionsinformationen zurückgibt.
Ausgabe:
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)
Sep 24 2019 13:48:23
Copyright (C) 2019 Microsoft Corporation
Express Edition (64-bit) on Windows 10 Home Single Language 10.0 <X64> (Build 22000: )
(1 rows affected)
Die Ausgabe zeigt detaillierte Informationen über die SQL Server-Version, einschließlich der Veröffentlichungs- und Build-Informationen. Sie zeigt, dass die installierte Version des SQL Servers 15.0.2000.5
ist.
Es ist wichtig zu beachten, dass das sqlcmd
-Dienstprogramm bereits installiert und im System-PATH verfügbar sein muss. Wenn es nicht installiert oder nicht zugänglich ist, schlägt der Befehl fehl.
Um sqlcmd
in PowerShell zu installieren, müssen Sie die SQL Server Command Line Utilities installieren, die sqlcmd
enthalten.
Hier sind die Schritte zur Installation von sqlcmd
:
-
Laden Sie die SQL Server Command Line Utilities herunter
Besuchen Sie die Seite für Microsoft SQL Server Downloads. Scrollen Sie nach unten zum Abschnitt
"Install the SQL Server command-line tools"
und klicken Sie auf den Download-Link für"Microsoft Command Line Utilities 15 for SQL Server"
(oder die entsprechende Version für Ihre Bedürfnisse). -
Führen Sie den Installer aus
Führen Sie den heruntergeladenen Installer (normalerweise eine
.msi
-Datei) aus. Folgen Sie den Anweisungen des Installationsassistenten. -
Komponenten auswählen
Während der Installation werden Sie aufgefordert, Komponenten auszuwählen. Stellen Sie sicher, dass Sie
"Command Line Utilities"
oder speziell"sqlcmd"
auswählen. -
Installation abschließen
Fahren Sie mit dem Installationsprozess fort, und sobald er abgeschlossen ist, haben Sie
sqlcmd
auf Ihrem System installiert. -
Installation überprüfen
Öffnen Sie das Eingabeaufforderungsfenster und geben Sie
sqlcmd
ein. Wenn es korrekt installiert ist, sollten Sie diesqlcmd
-Eingabeaufforderung sehen.
Beachten Sie, dass je nach Version des SQL Servers die speziellen Schritte und der Name des Installers variieren können, ebenso wie das Installationspaket, das Sie wählen. Stellen Sie sicher, dass Sie während der Installation die entsprechenden Komponenten auswählen, um sicherzustellen, dass sqlcmd
enthalten ist.
Darüber hinaus sollten der Servername und der Instanzname, die im Befehl angegeben sind, gültig und zugänglich sein. Wenn sie falsch oder nicht zugänglich sind, schlägt der Befehl fehl.
Vorteile und Nachteile der Verwendung des sqlcmd
-Dienstprogramms
Vorteile:
- Befehlszeilensteuerung für Scripting und Automatisierung.
- Keine Notwendigkeit, ein zusätzliches Modul zu installieren.
- Weit verbreitete Unterstützung für SQL Server-Versionen.
Nachteile:
- Ausgabe kann weniger benutzerfreundlich sein, was eine zusätzliche Verarbeitung erfordert.
- Eingeschränkte Funktionen im Vergleich zu
Invoke-Sqlcmd
.
Verwenden Sie das Invoke-Sqlcmd
Cmdlet, um die SQL Server-Version mit PowerShell zu überprüfen
Das Invoke-Sqlcmd
Cmdlet führt die Skripte und Befehle aus, die von dem SQL Server SQLCMD-Dienstprogramm unterstützt werden. Es akzeptiert Transact-SQL-Anweisungen und -Befehle wie GO
und QUIT
.
Syntax:
Invoke-Sqlcmd -query "SQL Query" -ServerInstance "ServerName\InstanceName"
In der obigen Syntax ersetzen wir "SQL Query"
durch die spezifische SQL-Abfrage, die Sie ausführen möchten, und "ServerName\InstanceName"
durch den Server- und Instanznamen des SQL Servers, mit dem Sie eine Verbindung herstellen möchten. Dieser Befehl wird verwendet, um SQL-Abfragen aus PowerShell heraus auszuführen und ist besonders nützlich, um SQL Server-Aufgaben in PowerShell-Skripte zu integrieren.
Der folgende Befehl ruft die SQL Server-Version in PowerShell ab.
Invoke-Sqlcmd -query "SELECT @@VERSION" -ServerInstance "DELFT-PC\SQLEXPRESS"
Wir verwenden das Invoke-Sqlcmd
Cmdlet, das ein Bestandteil von PowerShell ist und speziell für die Interaktion mit SQL Server entwickelt wurde. Es ermöglicht uns, SQL-Befehle und -Abfragen direkt aus einem PowerShell-Skript oder einer Sitzung heraus auszuführen.
Der Teil -query "SELECT @@VERSION"
des Befehls gibt die SQL-Abfrage an, die wir ausführen möchten. In diesem Fall führen wir die SQL-Abfrage SELECT @@VERSION
aus, und diese Abfrage ist ein integrierter SQL Server-Befehl, der detaillierte Versionsinformationen über den SQL Server abruft, mit dem er verbunden ist.
Durch die Verwendung von -ServerInstance "DELFT-PC\SQLEXPRESS"
definieren wir den Server und die Instanz, mit denen eine Verbindung hergestellt werden soll, mit den folgenden Komponenten:
-
-ServerInstance
ist eine Option, die den Server und die Instanz angibt, zu denen wir eine Verbindung herstellen möchten. -
"DELFT-PC\SQLEXPRESS"
ist der Servername und der Instanzname kombiniert."DELFT-PC"
steht für den Namen des SQL Servers, und"SQLEXPRESS"
steht für die spezifische Instanz von SQL Server, die auf diesem Rechner installiert ist, und diese Kombination gibt den genauen SQL Server an, den wir abfragen möchten.
Ausgabe:
Column1
-------
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) ...
Die obige Ausgabe liefert uns detaillierte Informationen über die SQL Server-Version, einschließlich der Veröffentlichungs- und Build-Details.
Wenn das Invoke-Sqlcmd
Cmdlet nicht erkannt wird, müssen Sie es mit dem folgenden Befehl installieren:
Install-Module SqlServer
Führen Sie dann diesen Befehl aus, um das Modul zu importieren.
Import-Module SqlServer
Dieser Ansatz ist praktisch, um SQL Server Aufgaben in PowerShell-Skripte zu integrieren und die Leistungsfähigkeit von PowerShell für Datenmanipulation und Automatisierung zu nutzen.
Es ist wichtig zu beachten, dass das Invoke-Sqlcmd
Cmdlet bereits in der aktuellen PowerShell-Sitzung verfügbar ist. Wenn das erforderliche Modul nicht importiert ist, schlägt der Code mit einem Fehler fehl.
Darüber hinaus schlägt der Code fehl, wenn die angegebene SQL Server-Instanz ("DELFT-PC\SQLEXPRESS"
) falsch oder nicht zugänglich ist.
Vorteile und Nachteile der Verwendung des Invoke-Sqlcmd
Cmdlets zur Überprüfung der SQL Server-Version in PowerShell
Vorteile:
- Nahtlose Integration mit PowerShell für fortgeschrittenes Scripting.
- Strukturierte und benutzerfreundliche Ausgabe.
- Reichhaltiges Funktionsset für komplexe Datenbankaufgaben.
Nachteile:
- Erfordert die Installation des
SqlServer
-Moduls. - Die Kompatibilität mit SQL Server-Versionen kann variieren.
Unterschied zwischen dem sqlcmd
-Dienstprogramm und dem Invoke-Sqlcmd
Cmdlet
Der Hauptunterschied zwischen den beiden Methoden, die Verwendung des sqlcmd
-Dienstprogramms und des Invoke-Sqlcmd
Cmdlets, um die SQL Server-Version in PowerShell zu überprüfen, kann hinsichtlich ihrer Herangehensweise, Integration und Benutzerfreundlichkeit zusammengefasst werden.
Der wesentliche Unterschied besteht darin, dass sqlcmd
ein externes Dienstprogramm mit begrenzter Integration in PowerShell ist. Es funktioniert als separates Befehlszeilenwerkzeug, und während es in PowerShell-Skripten verwendet werden kann, bietet es nicht das gleiche Maß an Integration und Flexibilität wie Invoke-Sqlcmd
.
Auf der anderen Seite ist Invoke-Sqlcmd
ein natives PowerShell-Cmdlet, das speziell für die Interaktion mit SQL Server entwickelt wurde. Es bietet einen leistungsfähigeren und integrierteren Ansatz zur Verwaltung von SQL Server-Daten innerhalb von PowerShell-Skripten, und dieses Cmdlet ermöglicht eine nahtlose Integration mit PowerShell, strukturierte Ausgaben und erweiterte Datenmanipulationsfähigkeiten.
Fazit
Dieses Tutorial untersucht zwei Methoden zur Überprüfung der SQL Server-Version in PowerShell: die Verwendung des sqlcmd
-Dienstprogramms und des Invoke-Sqlcmd
Cmdlets.
Das sqlcmd
-Dienstprogramm, ein Befehlszeilenwerkzeug, bietet Steuerung über die Befehlszeile und erfordert keine zusätzlichen Modulinstallationen. Seine Ausgabe kann jedoch zusätzliche Verarbeitung erfordern, und es hat im Vergleich zu Invoke-Sqlcmd
eingeschränkte Funktionen.
Das Invoke-Sqlcmd
Cmdlet, ein natives PowerShell-Werkzeug, bietet eine nahtlose Integration mit PowerShell, strukturierte und benutzerfreundliche Ausgabe sowie eine breite Palette von SQL Server-Funktionen. Es erfordert allerdings die Installation des SqlServer
-Moduls.
Als Best Practice sollten wir uns darüber im Klaren sein, dass sich Software- und Modulenamen im Laufe der Zeit ändern können, und es ist wichtig, den Modulnamen und die Version basierend auf ihrer aktuellen Umgebung zu überprüfen. Dies stellt sicher, dass der bereitgestellte Code und die Methoden relevant und funktional bleiben.