捕获从SQL Server输出的消息

时间:2019-03-11 05:15:00

标签: sql-server powershell

我在PS脚本下面创建了一个表格。我想捕获来自sql server的消息输出(命令成功完成。)。有办法实现吗?

我尝试了-详细切换,但没有帮助。

PS文件:

$CreateTableFile = "C:\DBScripts\CreateTable.sql"
Invoke-Sqlcmd -ServerInstance xyz -InputFile $CreateTableFile -Database "PSLearning" -Verbose

CreateTable.sql:
CREATE TABLE abc (
  column_1 int,
)

1 个答案:

答案 0 :(得分:0)

您没有说想要捕获的内容。一切或只是错误。

错误,您可以使用try / catch,可以使用Start-Transcript的所有内容,或编写自己的日志代码或诸如打印脚本之类的东西。

示例:

Invoke-Sqlcmd -Query "update your database set column_name ={expression} where <search_condition>; PRINT 'update successfully';" –Verbose

如内置帮助文件中所述……

# get function / cmdlet details
(Get-Command -Name Invoke-SqlCmd).Parameters
Get-help -Name Invoke-SqlCmd -Full
Get-help -Name Invoke-SqlCmd -Online
Get-help -Name Invoke-SqlCmd -Examples

Get-help -Name Invoke-SqlCmd -Examples
# -------------------------- EXAMPLE 5 --------------------------
C:\PS>Invoke-Sqlcmd -Query "PRINT N'abc'" -Verbose
VERBOSE: abc
# Description
# -----------
# This example uses the PowerShell -Verbose parameter to return the message output of the PRINT command.

...或在线的。

Invoke-Sqlcmd

  

您可以显示SQL Server消息输出,例如结果   通过指定Verbose参数从SQL PRINT语句中删除

     

示例5:运行查询并显示详细输出

PSet-Location "SQLSERVER:\SQL\MyComputer\MainInstance"
Invoke-SqlCmd -Query "PRINT N'abc'" -Verbose
VERBOSE: abc