我正在尝试找到一种通过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语句的输出,但是如果没有数据,它将为空。
在运行Insert .sql文件/脚本时,是否有可以立即捕获的内容?即将说插入20行并列出插入的数据。 基本上,当通过PowerShell运行任何.sql脚本时,我需要的是彻底的日志记录。它不应捕获受插入/更新/删除的数据影响的行以及执行该操作的用户。