我试图找出一种通过 PowerShell 脚本在 MSSQL 数据库中运行插入/选择/更新语句并彻底记录它的好方法。我已经设法使用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 行插入并列出插入的数据。基本上我所追求的是在通过 PowerShell 运行任何 .sql 脚本时进行彻底的日志记录。它应该捕获受插入/更新/删除的数据和执行它的用户影响的行数。