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-SqlcmdCmdlet, um die SQL Server-Version mit PowerShell zu überprüfen
- 
          
            Vorteile und Nachteile der Verwendung des Invoke-SqlcmdCmdlets zur Überprüfung der SQL Server-Version in PowerShell
- 
          
            Unterschied zwischen dem sqlcmd-Dienstprogramm und demInvoke-SqlcmdCmdlet
- 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 herunterBesuchen 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 ausFühren Sie den heruntergeladenen Installer (normalerweise eine .msi-Datei) aus. Folgen Sie den Anweisungen des Installationsassistenten.
- 
Komponenten auswählenWährend der Installation werden Sie aufgefordert, Komponenten auszuwählen. Stellen Sie sicher, dass Sie "Command Line Utilities"oder speziell"sqlcmd"auswählen.
- 
Installation abschließenFahren Sie mit dem Installationsprozess fort, und sobald er abgeschlossen ist, haben Sie sqlcmdauf Ihrem System installiert.
- 
Installation überprüfenÖffnen Sie das Eingabeaufforderungsfenster und geben Sie sqlcmdein. 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:
- 
-ServerInstanceist 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.
