通过Powershell捕获.sql语句的日志

时间:2018-09-20 01:01:59

标签: sql-server powershell scripting invoke-sqlcmd

我正在尝试找到一种通过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脚本时,我需要的是彻底的日志记录。它不应捕获受插入/更新/删除的数据影响的行以及执行该操作的用户。

0 个答案:

没有答案