簡単! Management StudioからPowerShellを使う
それでは、PowerShellを使ったSQL Server 2008の操作方法について見ていこう。
PowerShellを単体で起動して、SQL Serverに接続することももちろん可能(詳細はこちらを参照)だが、SQL Server Management Studioから、そのままPowerShellを起動することもできる。まずSQL Server Management Studioを起動し、サーバーを右クリックして[PowerShellの起動]をクリックしてみよう。
すると、SQL Serverを操作するために必要な設定がすべて行われた状態で、PowerShellが起動される。ここで、まず「dir」コマンドを実行してみよう。すると、「Databases」や「Logins」あるいは「Roles」などが表示されることを確認できる(ちなみに「WIN-KGNGSGG6CQN」というのはサーバー名である)。
SQL Server Management Studioから起動したPowerShellで「dir」コマンドを実行したときの画面。SQL Server専用のプロバイダが適用されており、通常起動時(プロバイダはファイルサーバ)とは異なる操作ができる |
さらに、「cd .\Logins」というコマンドを実行することでLoginsフォルダの中に移動したり、その中で「dir」コマンドを実行することで、現在のログイン一覧を確認したりできるのだ。
このように、SQL ServerとPowerShellの組み合わせであれば、データベース管理で使用するさまざまなオブジェクトを、フォルダやファイルを扱うような感覚で操作できるのである。
また、SQL Server Management StudioからPowerShellを起動する場合、対象となるオブジェクトを右クリックして「PowerShellの起動」をクリックすることで、そのオブジェクトに相当するフォルダに移動した状態でPowerShellを起動できる。
たとえば、SQL Server Management Studioで「ログイン」を右クリックして「PowerShellの起動」をクリックすれば、「ログイン」に相当する「Logins」フォルダに移動した状態でPowerShellが起動される。
もちろん、オブジェクトの一覧を見るだけでなく、それらを作成したり削除したりすることも可能だ。PowerShellは.NET Frameworkを基盤としているので、SQL Serverの管理を行うときには、.NET FrameworkのクラスライブラリであるSQL Server管理オブジェクト(SMO)を使用することになる。Microsoft.SqlServer.Management.SMO名前空間のクラスは以下のWebサイトから確認できる。
PowerShellのプロバイダ
PowerShellではプロバイダという仕組みにより、特定の作業を容易にするための拡張が行えるようになっており、SQL Server 2008でも専用のプロバイダが用意されている。このSQL Server専用のプロバイダを使用することで、データベース内のさまざまなオブジェクトを操作する際に、ファイルシステムのように扱えるのだ。
たとえばテーブルのインデックスや制約といった項目を扱う場合でも、cdやdirといったコマンドを使用することができる。詳細を知りたい方は以下のWebサイトを参照するとよいだろう。
SQL Server PowerShell プロバイダの使用
http://technet.microsoft.com/ja-jp/library/cc281947.aspxなお、PowerShellは.NET Frameworkを基盤としているため、以前からADO.NETを使用すればデータベースも操作できたが、SQL Server専用プロバイダを使用すればもっと直感的にデータベース操作を行うことができるのである。