Я пытаюсь найти хороший способ запустить операторы вставки / выбора / обновления в базе данных MSSQL с помощью сценариев PowerShell и тщательно их зарегистрировать.Мне удалось использовать Invoke-Sqlcmd
, который делает вставки и операторы выбора довольно хорошо.Но моя задача состоит в том, чтобы записать логи, где-то в качестве выходного файла.То есть при выполнении вставок журнал должен фиксироваться как нет.строк, затронутых / вставленных с данными, которые были вставлены.
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, если данные выходят в соответствии с критериями, но он будет пустымесли нет данных.
Есть ли что-то, что можно запустить для мгновенного захвата при запуске файла / скрипта Insert .sql?то есть который скажет 20 вставленных строк и перечисляя вставленные данные.В основном, я ищу тщательную регистрацию при запуске любых скриптов .sql через PowerShell.Он не должен захватывать ни одну из строк, на которые влияют вставленные / обновленные / удаленные данные, и пользователя, который их выполнил.