PowerShell を使って SQL Server のバージョンを確認する方法

  1. PowerShell で sqlcmd ユーティリティを使用して SQL Server バージョンを確認する
  2. sqlcmd ユーティリティを使用する利点と欠点
  3. PowerShell を使用して Invoke-Sqlcmd コマンドレットで SQL Server バージョンを確認する
  4. PowerShell で SQL Server のバージョンを確認するための Invoke-Sqlcmd コマンドレットを使用する利点と欠点
  5. sqlcmd ユーティリティと Invoke-Sqlcmd コマンドレットの違い
  6. 結論
PowerShell を使って SQL Server のバージョンを確認する方法

プログラムのバージョンを確認することは、PowerShell で行う一般的な操作の 1つです。リレーショナルデータベースを管理するために Microsoft SQL Server を使用している場合、コンピューターにインストールされているバージョンを知っておくことが重要です。

このチュートリアルでは、PowerShell を使用して SQL Server のバージョンを確認する 2つの方法を紹介します。

PowerShell で sqlcmd ユーティリティを使用して SQL Server バージョンを確認する

sqlcmd は、対話的な Transact-SQL ステートメントやスクリプトを実行するコマンドラインユーティリティです。Transact-SQL スクリプト作業を自動化する役に立ちます。

構文:

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

上記の構文では、ServerName を SQL Server の名前に、InstanceName を SQL Server インスタンスの名前に、"SQL Query"を実行したい特定の SQL クエリに置き換えます。

次のコマンドは、PowerShell に SQL Server のバージョンを表示します。DelftStack はサーバー名で、SQLEXPRESS は我々の SQL Server のインスタンス名です。

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

私たちは、Transact-SQL コマンドやスクリプトを実行するためのコマンドラインツールである sqlcmd ユーティリティを使用しています。これは、コマンドラインから SQL Server と対話する方法です。

-S DelftStack\SQLEXPRESS を使用して、接続したいサーバーとインスタンスを指定しています。DelftStack がサーバー名で、SQLEXPRESS がインスタンス名であり、この組み合わせが照会したい特定の SQL Server を特定します。

-Q "SELECT @@VERSION"コマンドの一部は、SQL Server に SQL クエリを実行するよう指示します。この場合、SQL Server にバージョン情報を取得するように要求しています。

SELECT @@VERSION クエリは、詳細なバージョン情報を返す SQL Server の組み込みコマンドです。

出力:

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 Server バージョンの詳細情報を表示します。インストールされている SQL Server のバージョンは 15.0.2000.5 であることを示しています。

sqlcmd ユーティリティは、すでにインストールされていて、システムの PATH でアクセス可能である必要があります。インストールされていない場合やアクセスできない場合、コマンドは失敗します。

PowerShell で sqlcmd をインストールするには、sqlcmd を含む SQL Server コマンドラインユーティリティをインストールする必要があります。

以下は sqlcmd をインストールする手順です。

  • SQL Server コマンドラインユーティリティをダウンロード

    Microsoft SQL Server のダウンロードページにアクセスします。「SQL Server コマンドラインツールをインストール」のセクションまでスクロールし、"Microsoft Command Line Utilities 15 for SQL Server"(またはニーズに合った適切なバージョン)をダウンロードリンクをクリックします。

  • インストーラーを実行

    ダウンロードしたインストーラー(通常は .msi ファイル)を実行します。インストールウィザードの指示に従います。

  • コンポーネントを選択

    インストール中にコンポーネントを選択するように求められます。"Command Line Utilities"または特に"sqlcmd"を選択してください。

  • インストールを完了

    インストールプロセスを進め、完了したら、システムに sqlcmd がインストールされます。

  • インストールを確認

    コマンドプロンプトウィンドウを開いて sqlcmd と入力します。正しくインストールされていれば、sqlcmd プロンプトが表示されます。

SQL Server のバージョンによって手順やインストーラーの名前が異なる場合がありますのでご注意ください。インストール中に適切なコンポーネントを選択して、sqlcmd が含まれていることを確認してください。

さらに、コマンドで指定されたサーバー名とインスタンス名が有効であり、アクセス可能である必要があります。正しくない場合やアクセスできない場合、コマンドは失敗します。

sqlcmd ユーティリティを使用する利点と欠点

利点:

  • スクリプトと自動化のためのコマンドライン制御。
  • 追加のモジュールをインストールする必要はありません。
  • SQL Server のバージョン全般に広くサポートされています。

欠点:

  • 出力がユーザーフレンドリーでない場合があり、追加の解析が必要です。
  • Invoke-Sqlcmd と比較して機能が制限されています。

PowerShell を使用して Invoke-Sqlcmd コマンドレットで SQL Server バージョンを確認する

Invoke-Sqlcmd コマンドレットは、SQL Server SQLCMD ユーティリティによってサポートされるスクリプトとコマンドを実行します。GOQUIT などの Transact-SQL ステートメントとコマンドを受け入れます。

構文:

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

上記の構文では、"SQL Query"を実行したい特定の SQL クエリに、"ServerName\InstanceName"を接続する SQL Server のサーバー名とインスタンス名に置き換えます。このコマンドは、PowerShell 内から SQL クエリを実行するために使用されており、特に SQL Server 作業を PowerShell スクリプトに統合するのに便利です。

次のコマンドは、PowerShell で SQL Server のバージョンを取得します。

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

私たちは、PowerShell の一部であり、SQL Server と対話するために特別に設計された Invoke-Sqlcmd コマンドレットを使用しています。これにより、PowerShell スクリプトやセッション内から直接 SQL コマンドやクエリを実行できます。

-query "SELECT @@VERSION"の部分は、実行したい SQL クエリを指定します。この場合、SQL クエリ SELECT @@VERSION を実行しており、このクエリは接続されている SQL Server の詳細なバージョン情報を取得します。

-ServerInstance "DELFT-PC\SQLEXPRESS"を使用して、次のコンポーネントで接続するサーバーとインスタンスを定義しています:

  1. -ServerInstance は、接続したいサーバーとインスタンスを示すオプションです。

  2. "DELFT-PC\SQLEXPRESS"は、サーバー名とインスタンス名を組み合わせたものです。"DELFT-PC"は SQL Server の名前を、"SQLEXPRESS"は、そのマシンにインストールされた特定の SQL Server インスタンスを表し、この組み合わせが照会したい正確な SQL Server を特定します。

出力:

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

上記の出力は、SQL Server のバージョンに関する詳細情報を提供し、リリースやビルドの詳細を含んでいます。

Invoke-Sqlcmd コマンドレットが認識されない場合は、以下のコマンドを使用してインストールする必要があります。

Install-Module SqlServer

次に、このコマンドを実行してモジュールをインポートします。

Import-Module SqlServer

このアプローチは、PowerShell スクリプトに SQL Server 作業を統合し、データ操作と自動化のために PowerShell の力を活用するために便利です。

重要な点として、Invoke-Sqlcmd コマンドレットは、現在の PowerShell セッションで既に利用可能です。必要なモジュールがインポートされていない場合、コードはエラーとともに失敗します。

さらに、指定された SQL Server インスタンス("DELFT-PC\SQLEXPRESS")が不正確またはアクセス不可能な場合、コードは接続およびクエリの実行に失敗します。

PowerShell で SQL Server のバージョンを確認するための Invoke-Sqlcmd コマンドレットを使用する利点と欠点

利点:

  • 高度なスクリプトのための PowerShell とのシームレスな統合。
  • より構造化され、ユーザーフレンドリーな出力。
  • 複雑なデータベース作業に対する豊富な機能セット。

欠点:

  • SqlServer モジュールのインストールが必要です。
  • SQL Server のバージョンによって互換性が異なる場合があります。

sqlcmd ユーティリティと Invoke-Sqlcmd コマンドレットの違い

SQL Server のバージョンを PowerShell で確認するための sqlcmd ユーティリティと Invoke-Sqlcmd コマンドレットの 2つのメソッドの主な違いは、それぞれのアプローチ、統合、使いやすさで要約できます。

主な違いは、sqlcmd が PowerShell に限られた統合を持つ外部ユーティリティであるという点です。これは、別のコマンドラインツールとして機能し、PowerShell スクリプト内でも使用できますが、Invoke-Sqlcmd ほどの統合性や柔軟性を提供しません。

一方、Invoke-Sqlcmd は、SQL Server と対話するために特別に設計された PowerShell ネイティブのコマンドレットです。このコマンドレットは、PowerShell スクリプト内で SQL Server データを管理するためのより強力で統合されたアプローチを提供し、PowerShell とのシームレスな統合、構造化された出力、および高度なデータ操作機能を可能にします。

結論

このチュートリアルでは、PowerShell で SQL Server のバージョンを確認する 2つの方法、すなわち sqlcmd ユーティリティと Invoke-Sqlcmd コマンドレットを探ります。

コマンドラインツールである sqlcmd ユーティリティは、コマンドライン制御を提供し、追加のモジュールインストールを必要としません。ただし、その出力は追加の解析が必要となる場合があり、Invoke-Sqlcmd と比較すると機能が制限されています。

ネイティブの PowerShell ツールである Invoke-Sqlcmd コマンドレットは、PowerShell とのシームレスな統合、構造化されたユーザーフレンドリーな出力、および広範な SQL Server 機能を提供します。ただし、SqlServer モジュールのインストールが必要です。

ベストプラクティスとして、ソフトウェアやモジュールの名前は時間とともに変化する可能性があるため、特定の環境に基づいてモジュール名とバージョンを確認することが重要です。これにより、提供されたコードやメソッドが関連性を持ち、機能し続けることが確保されます。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 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