Wie man die SQL Server-Version mit PowerShell überprüft

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

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 die sqlcmd-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:

  1. -ServerInstance ist eine Option, die den Server und die Instanz angibt, zu denen wir eine Verbindung herstellen möchten.

  2. "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.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website