by kusakari
7. 12月 2009 20:24
前回、前々回とPowerShellから、SQLServerにデータベースとテーブルを作成したり、定義を変更してみたりしましたので、今回は、データベースやテーブルを削除してみたいと思います。
※SQLServer2008では、PowerShellがサポートされ専用のコマンドレットを使うことが出来ます。
方法としては、イロイロあると思いますが、今回は下記の2通りの方法を紹介いたします。
- System.Data.SqlClient
- Invoke-Sqlcmd
なお、今回の実験は、前回の環境からの続きになります。
■1.System.Data.SqlClient
System.Data.SqlClient でデータベースやテーブルの定義変更をしてみます。
【データベース削除】
下記は、ローカルの SQLServer に作成されている PowerShell という名前のデータベースを削除しています。
$query = @"
DROP DATABASE PowerShell
"@
$strConn = 'Data Source = localhost; Integrated Security = True'
$conn = New-Object System.Data.SqlClient.SqlConnection($strConn)
$cmd = New-Object System.Data.SqlClient.SqlCommand($query, $conn)
$conn | % `
{
$_.Open();
[void]$cmd.ExecuteNonQuery();
$_.Close();
$_.Dispose();
}
【テーブル削除】
下記は、ローカルの SQLServer の PowerShell データベースにある tbl_ps テーブルを削除しています。
$query = @"
DROP TABLE tbl_ps
"@
$strConn = 'Data Source = localhost; Initial Catalog = PowerShell; Integrated Security = True'
$conn = New-Object System.Data.SqlClient.SqlConnection($strConn)
$cmd = New-Object System.Data.SqlClient.SqlCommand($query, $conn)
$conn | % `
{
$_.Open();
[void]$cmd.ExecuteNonQuery();
$_.Close();
$_.Dispose();
}
■2.Invoke-Sqlcmd
Invoke-Sqlcmd を使ってデータベースやテーブルの削除をしてみたいと思います。
なお、Invoke-Sqlcmd を使う場合は下記のコマンドなどで追加してください。
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
【データベース削除】
下記は、ローカルの SQLServer に作成されている PowerShell という名前のデータベースを削除しています。
$query = @"
DROP DATABASE PowerShell
"@
Invoke-Sqlcmd -Query $query
【テーブル削除】
下記は、ローカルの SQLServer の PowerShell データベースにある tbl_ps テーブルを削除しています。
$query = @"
DROP TABLE tbl_ps
"@
Invoke-Sqlcmd -Database PowerShell -Query $query
今回、データベースやテーブルの削除で使用したクエリは、簡単なテスト目的でのクエリです。記載しているサンプルは、例外処理に関しては記載してありませんので、ご注意ください。また、クエリに関して他の設定を行う場合は、下記のMSDNをご覧ください。
69bd59b5-ee12-4976-acd5-bbf257be5fd0|0|.0
Category: PowerShell, SQL
Tags: