小编SQL*_*ean的帖子

使用 Invoke-Sqlcmd 时如何本机返回输出?

如何本地记录来自 PowerShell Invoke-Sqlcmd 的输出?

我正在使用 Invoke-Sqlcmd 循环遍历一个大的(50,000-90,000 个 SQL 文件,每个文件中有 1-10 个插入)小 SQL 插入语句集。大多数插入语句运行正确,但一些字符串太长,我收到“字符串或二进制数据将被截断”错误。

现在我正在使用 Start-Transcript 来捕获输出并识别有问题的插入语句,但 Start-Transcript 捕获了所有内容。我只想捕获错误 - 或者 - 只捕获 Invoke_Sqlcmd 语句输出。

如果这行得通(我认为应该如此),我就准备好了:

Invoke-Sqlcmd -InputFile $sql -ServerInstance LocalHost -Database Test_DB -Credential $pwd -Verbose -OutputSqlErrors $true | Out-File -FilePath "C:\Temp\Errorlog.txt" -Append
Run Code Online (Sandbox Code Playgroud)

或者,如果这有效:

Invoke-Sqlcmd -InputFile $sql -ServerInstance LocalHost -Database Test_DB -Credential $pwd -Verbose -OutputSqlErrors $true | Tee-Object -FilePath "C:\Temp\Errorlog.txt" -Append
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用。

我也尝试过这种怪物,但我根本没有从中得到任何错误:

$sqls = (Get-ChildItem -Path "I:\2019_06_24\_SQL"-Filter *.sql | Sort-Object -Property CreationTime).FullName
        foreach ($sql in $sqls)
            {
            $Error.Clear()
            try …
Run Code Online (Sandbox Code Playgroud)

powershell sqlcmd

5
推荐指数
1
解决办法
2753
查看次数

标签 统计

powershell ×1

sqlcmd ×1