次の方法で共有


SQL Server PowerShell パスの操作

データベース エンジン プロバイダーのパスでノードに移動した後、ノードに関連付けられている データベース エンジン 管理オブジェクトのメソッドとプロパティを使用して、作業を実行したり、情報を取得したりできます。

SQL Server PowerShell モジュールには SqlServerSQLPS の 2 つがあります。

SqlServer モジュールは、使用する現在の PowerShell モジュールです。

SQLPS モジュールは、(後方互換性のため) SQL Server のインストールに含まれていますが、今後更新されることはありません。

SqlServer モジュールには、SQLPS のコマンドレットの更新バージョンに加え、最新の SQL 機能をサポートする新しいコマンドレットが含まれています。

PowerShell ギャラリーから SqlServer モジュールをインストールします。

詳細については、 SQL Server PowerShell を参照してください。

データベース エンジン プロバイダーのパスでノードに移動した後、次の 2 種類の操作を実行できます。

  • Rename-Itemなど、ノードを操作する Windows PowerShell コマンドレットを実行できます。

  • 関連付けられた SQL Server 管理オブジェクト モデル (SMO など) のメソッドを呼び出すことができます。 たとえば、パスで <xref:Microsoft.SqlServer.Management.Smo.Database> ノードに移動すると、 クラスのメソッドとプロパティを使用できます。

SQL Server プロバイダーは、 データベース エンジンのインスタンスのオブジェクトを管理するために使用されます。 データベース内のデータの処理には使用されません。 テーブルまたはビューに移動した場合に、プロバイダーを使用してデータの選択、挿入、更新、または削除を行うことはできません。 テーブルおよびビューのデータを Windows PowerShell 環境からクエリまたは変更するには、 Invoke-Sqlcmd コマンドレットを使用します。 詳細については、「 Invoke-Sqlcmd」を参照してください。

メソッドとプロパティの一覧表示

メソッドとプロパティの一覧表示

特定のオブジェクトまたはオブジェクト クラスで使用できるメソッドとプロパティを表示するには、 Get-Member コマンドレットを使用します。

例: メソッドとプロパティの一覧表示

次の例では、Windows PowerShell 変数に SMO <xref:Microsoft.SqlServer.Management.Smo.Database> クラスを設定し、メソッドとプロパティを一覧表示します。

$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar | Get-Member -Type Methods
$MyDBVar | Get-Member -Type Properties

また、 Get-Member を使用して、Windows PowerShell パスの終了ノードに関連付けられているメソッドとプロパティを一覧表示することもできます。

次の例では、SQLSERVER: パスで Databases ノードに移動し、コレクションのプロパティを一覧表示します。

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-Item . | Get-Member -Type Properties

次の例では、SQLSERVER: パスで AdventureWorks2022 ノードに移動し、オブジェクトのプロパティを一覧表示します。

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022
Get-Item . | Get-Member -Type Properties

メソッドとプロパティを使用する

SMO メソッドとプロパティの使用

データベース エンジン プロバイダー パスからオブジェクトの操作を実行するには、SMO メソッドとプロパティを使用します。

例: メソッドとプロパティの使用

次の例では、SMO の Schema プロパティを使用して、AdventureWorks2022 の Sales スキーマからテーブルの一覧を取得します。

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Tables
Get-ChildItem | where {$_.Schema -eq "Sales"}

次の例では、SMO の Script メソッドを使用して、 でビューを再作成するために必要な AdventureWorks2022 ステートメントを含むスクリプトを生成します。

Remove-Item C:\PowerShell\CreateViews.sql
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Views
foreach ($Item in Get-ChildItem) { $Item.Script() | Out-File -Filepath C:\PowerShell\CreateViews.sql -append }

次の例では、SMO の Create メソッドを使用してデータベースを作成し、 State プロパティを使用してデータベースが存在するかどうかを確認します。

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar.Parent = (Get-Item ..)
$MyDBVar.Name = "NewDB"
$MyDBVar.Create()
$MyDBVar.State