次の方法で共有


SQL Server PowerShell パスの操作

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

  1. はじめに

  2. パス ノードで作業するには: メソッドとプロパティのリストメソッドとプロパティの使用

始める前に

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

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

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

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

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

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

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

次の例では、Windows PowerShell 変数に 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: パスで AdventureWorks2012 ノードに移動し、オブジェクトのプロパティを一覧表示します。

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

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

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

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

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

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

この例では、SMO Script メソッドを使用して、AdventureWorks2012 でビューを再作成する必要がある CREATE VIEW ステートメントを含むスクリプトを生成します。

Remove-Item C:\PowerShell\CreateViews.sql  
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012\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  

参照

SQL Server PowerShell プロバイダー
SQL Server PowerShell パスの移動
URN から SQL Server プロバイダー パスへの変換
SQL Server PowerShell