如何使用 PowerShell 檢查 SQL Server 版本

  1. 使用 sqlcmd 工具在 PowerShell 中檢查 SQL 伺服器版本
  2. 使用 sqlcmd 工具的優缺點
  3. 使用 Invoke-Sqlcmd Cmdlet 使用 PowerShell 檢查 SQL 伺服器版本
  4. 使用 Invoke-Sqlcmd Cmdlet 在 PowerShell 中檢查 SQL 伺服器版本的優缺點
  5. sqlcmd 工具和 Invoke-Sqlcmd Cmdlet 之間的區別
  6. 結論
如何使用 PowerShell 檢查 SQL Server 版本

檢查程式版本是您可以在 PowerShell 中執行的常見操作之一。如果您正在使用 Microsoft SQL 伺服器來管理關聯數據庫,知道您計算機上安裝了哪個版本是很重要的。

本教程將介紹使用 PowerShell 檢查 SQL 伺服器版本的兩種方法。

使用 sqlcmd 工具在 PowerShell 中檢查 SQL 伺服器版本

sqlcmd 是一種命令行工具,允許您執行互動式 Transact-SQL 語句和腳本。它有助於自動化 Transact-SQL 腳本任務。

語法:

sqlcmd -S ServerName\InstanceName -Q "SQL Query"

在上述語法中,我們將 ServerName 替換為您的 SQL 伺服器名稱,將 InstanceName 替換為您的 SQL 伺服器實例名稱,並將 "SQL Query" 替換為您想要執行的特定 SQL 查詢。

以下命令在 PowerShell 中打印 SQL 伺服器版本。DelftStack 是伺服器名稱,而 SQLEXPRESS 是我們的 SQL 伺服器實例名稱。

sqlcmd -S DelftStack\SQLEXPRESS -Q "SELECT @@VERSION"

我們使用 sqlcmd 工具,這是一種用於執行 Transact-SQL 命令和腳本的命令行工具。這是一種從命令行與 SQL 伺服器進行交互的方法。

使用 -S DelftStack\SQLEXPRESS,我們指定要連接的伺服器和實例。DelftStack 是伺服器名稱,而 SQLEXPRESS 是實例名稱,這個組合標識了我們想要查詢的特定 SQL 伺服器。

命令中的 -Q "SELECT @@VERSION" 部分指示 SQL 伺服器執行一個 SQL 查詢。在這種情況下,我們要求 SQL 伺服器檢索其版本信息。

SELECT @@VERSION 查詢是一個內置的 SQL 伺服器命令,返回詳細的版本信息。

輸出:

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)

輸出顯示有關 SQL 伺服器版本的詳細信息,包括發佈和編譯信息。它顯示已安裝的 SQL 伺服器版本是 15.0.2000.5

重要的是要注意,sqlcmd 工具必須已經安裝並且可以在系統的 PATH 中訪問。如果未安裝或無法訪問,則命令將失敗。

要在 PowerShell 中安裝 sqlcmd,您需要安裝 SQL 伺服器命令行工具,它們包括 sqlcmd

以下是安裝 sqlcmd 的步驟:

  • 下載 SQL 伺服器命令行工具

    訪問 Microsoft SQL 伺服器下載頁面。向下滾動到 "Install the SQL Server command-line tools" 部分,然後單擊 "Microsoft Command Line Utilities 15 for SQL Server"(或根據您的需要選擇的適用版本)的下載鏈接。

  • 運行安裝程式

    運行下載的安裝程式(通常是 .msi 文件)。按照安裝向導的指示操作。

  • 選擇組件

    在安裝過程中,系統會提示您選擇組件。確保特別選擇 "Command Line Utilities""sqlcmd"

  • 完成安裝

    繼續完成安裝過程,完成後,您將在系統上安裝 sqlcmd

  • 驗證安裝

    打開命令提示符窗口並輸入 sqlcmd。如果安裝正確,您應該會看到 sqlcmd 提示符。

請記住,根據 SQL 伺服器的版本,特定的步驟和安裝程式的名稱可能會有所不同,您選擇的安裝包也會有所不同。在安裝過程中,請務必選擇合適的組件以確保包含 sqlcmd

此外,命令中提供的伺服器名稱和實例名稱應該是有效且可訪問的。如果它們不正確或無法訪問,命令將失敗。

使用 sqlcmd 工具的優缺點

優點:

  • 用於腳本和自動化的命令行控制。
  • 無需安裝其他模塊。
  • 廣泛支持 SQL 伺服器版本。

缺點:

  • 輸出可能不太符合用戶友好,需要額外解析。
  • Invoke-Sqlcmd 相比功能有限。

使用 Invoke-Sqlcmd Cmdlet 使用 PowerShell 檢查 SQL 伺服器版本

Invoke-Sqlcmd cmdlet 執行 SQL 伺服器 SQLCMD 工具支持的腳本和命令。它接受 Transact-SQL 語句和命令,例如 GOQUIT

語法:

Invoke-Sqlcmd -query "SQL Query" -ServerInstance "ServerName\InstanceName"

在上述語法中,我們將 "SQL Query" 替換為您想要執行的特定 SQL 查詢,將 "ServerName\InstanceName" 替換為您想要連接的 SQL 伺服器的伺服器和實例名稱。此命令用於從 PowerShell 內部運行 SQL 查詢,特別適合將 SQL 伺服器任務整合到 PowerShell 腳本中。

以下命令在 PowerShell 中獲取 SQL 伺服器版本。

Invoke-Sqlcmd -query "SELECT @@VERSION" -ServerInstance "DELFT-PC\SQLEXPRESS"

我們使用 Invoke-Sqlcmd cmdlet,這是 PowerShell 的一部分,專門用於與 SQL 伺服器進行交互。它允許我們直接從 PowerShell 腳本或會話中執行 SQL 命令和查詢。

命令中的 -query "SELECT @@VERSION" 部分指定我們要運行的 SQL 查詢。在這種情況下,我們執行 SQL 查詢 SELECT @@VERSION,這是一個內置的 SQL 伺服器命令,檢索有關其所連接的 SQL 伺服器的詳細版本信息。

使用 -ServerInstance "DELFT-PC\SQLEXPRESS",我們定義要連接的伺服器和實例:

  1. -ServerInstance 是一個選項,表示我們要連接的伺服器和實例。

  2. "DELFT-PC\SQLEXPRESS" 是伺服器名稱和實例名稱的組合。"DELFT-PC"表示 SQL 伺服器的名稱,而 "SQLEXPRESS" 表示安裝在該計算機上的特定 SQL 伺服器實例,這個組合指定了我們想要查詢的確切 SQL 伺服器。

輸出:

Column1
-------
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) ...

上面的輸出提供了有關 SQL 伺服器版本的詳細信息,包括發佈和編譯詳細信息。

如果無法識別 Invoke-Sqlcmd cmdlet,您必須使用以下命令安裝它:

Install-Module SqlServer

然後,運行此命令以導入該模塊。

Import-Module SqlServer

這種方法方便將 SQL 伺服器任務整合到 PowerShell 腳本中,並利用 PowerShell 的數據操作和自動化能力。

重要的是要注意,Invoke-Sqlcmd cmdlet 在當前 PowerShell 會話中已經可用。如果所需的模塊未導入,代碼將因錯誤而失敗。

此外,如果指定的 SQL 伺服器實例("DELFT-PC\SQLEXPRESS")不正確或無法訪問,代碼將無法連接並執行查詢。

使用 Invoke-Sqlcmd Cmdlet 在 PowerShell 中檢查 SQL 伺服器版本的優缺點

優點:

  • 與 PowerShell 的無縫整合以實現高級腳本。
  • 更結構化和用戶友好的輸出。
  • 豐富的功能集以便於處理複雜的數據庫任務。

缺點:

  • 需要安裝 SqlServer 模塊。
  • 與 SQL 伺服器版本的兼容性可能有所不同。

sqlcmd 工具和 Invoke-Sqlcmd Cmdlet 之間的區別

使用 sqlcmd 工具與 Invoke-Sqlcmd cmdlet 檢查 SQL 伺服器版本的兩種方法之間的主要區別可以總結為它們的方法、整合和可用性。

關鍵區別在於 sqlcmd 是一個外部工具,與 PowerShell 的整合有限。它作為一個獨立的命令行工具運行,雖然可以在 PowerShell 腳本中使用,但它提供的整合和靈活性水平與 Invoke-Sqlcmd 不同。

另一方面,Invoke-Sqlcmd 是一個 PowerShell 原生的 cmdlet,專門用於與 SQL 伺服器進行交互。它為在 PowerShell 腳本中管理 SQL 伺服器數據提供了更強大和集成的方法,這個 cmdlet 允許與 PowerShell 無縫整合、結構化的輸出和高級數據操作能力。

結論

本教程探討了在 PowerShell 中檢查 SQL 伺服器版本的兩種方法:使用 sqlcmd 工具和 Invoke-Sqlcmd cmdlet。

sqlcmd 工具是一種命令行工具,提供命令行控制,無需額外的模塊安裝。然而,其輸出可能需要額外解析,並且與 Invoke-Sqlcmd 相比功能有限。

Invoke-Sqlcmd cmdlet 是一個原生的 PowerShell 工具,與 PowerShell 無縫整合,提供結構化且用戶友好的輸出,以及廣泛的 SQL 伺服器功能。它確實需要安裝 SqlServer 模塊。

作為最佳實踐,我們應該意識到軟體和模塊名稱可能會隨著時間而改變,確認模塊名稱和版本根據其當前環境是至關重要的。這確保了提供的代碼和方法保持相關和功能正常。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
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

相關文章 - PowerShell SQL