1

PowerShell スクリプトを使用して MSSQL データベースに挿入/選択/更新ステートメントを実行し、それを完全にログに記録する良い方法を見つけようとしています。私Invoke-Sqlcmdは、挿入ステートメントと選択ステートメントをかなりうまく使用することができました。しかし、私の懸念は、ログをどこかで出力ファイルとしてキャプチャすることです。これは、挿入を行うときに、ログが no をキャプチャする必要がある場合です。挿入されたデータで影響を受けた/挿入された行の数。

Invoke-Sqlcmd を使用:

PS C:\Users\moshink\Desktop\Powershell SQL> Invoke-Sqlcmd -Server $server -Database $db -Username $user -Password $pass -InputFile ".\test.sql" | Out-File -FilePath ".\test_$datetime.rpt" >> $LogFile

以下の test.sqlファイルのクエリ:

use TCS_MIS
select * from tblMasterAccountType where acctType in ('0121') and intCat in ('0020')
--insert into tblMasterAccountType values ('DEP','0121','0020','PARENTHOOD ASSISTANCE ACCOUNT')

test.sqlファイルは Invoke-Sqlcmd で呼び出されます。このファイルは、そこに入るクエリで動的にすることができます。

Out-File ".\test_$datetime.rpt" は、条件に一致するデータが存在する場合は select ステートメントの出力をキャプチャしますが、データがない場合は空白になります。

挿入 .sql ファイル/スクリプトを実行しているときに、すぐにキャプチャするために実行できるものはありますか? つまり、20 行が挿入され、挿入されたデータが一覧表示されます。基本的に私が求めているのは、PowerShell を介して .sql スクリプトを実行するときの完全なログ記録です。挿入/更新/削除されたデータの影響を受ける行数と、それを実行したユーザーをキャプチャする必要があります。

4

0 に答える 0