###前提・実現したいこと
PowershellにてSQL Serverのメンテナンスを行うスクリプトを作成しております。
その中でデータの削除を行う際、削除された件数を取得したいのですが、実現できません。
どのようにしたら取得可能か教えていただけますでしょうか。
DBへの接続には Microsoft.SqlServer.Management.Smo.Database を使用し
SQL実行には ExecuteNonQuery メソッドを使用しております。
しかし、DatabaseクラスのExecuteNonQuery には戻り値が無いため
SQL実行時に処理された件数がわからず困っております。
環境
Powershell(3.0)
SQLServer2014
###該当のソースコード
Powerhshell
1[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') 2$sqlserver = New-Object Microsoft.SqlServer.Management.SMO.Server('(local)') 3$db = $sqlserver.databases['DB'] 4 5$sql = 'DELETE FROM TBL_A WHERE COL_A = 1' 6 7# SQL(Delete)の実行 8$db.ExecuteNonQuery($sql) # 戻り値が無く、処理件数が不明
###試したこと
ExecuteWithResults メソッドの利用
SQLは実行されデータ削除も行われました。
ただし戻り値のDataSetオブジェクトについて、一通りのプロパティを確認しましたが
処理件数と思われる値は見当たりませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
System.Data.Odbc.OdbcCommandクラスを使用すれば実現できるのはわかりますが
処理の中でデータベースサイズのチェックなども行うため
可能であればDatabaseクラスでまとめてしまいたいと考えております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/17 07:19