SQL Server 2008:如何使用PowerShell获取“消息”选项卡(在Management Studio中)输出

时间:2011-05-16 12:36:06

标签: sql-server-2008 powershell

我使用invoke-sqlcmd来管理我的数据库,它运行正常。 我将Management Studio中“结果”选项卡的输出保存到日志文件中。

当我执行BACKUP DATABASE时,输出在“消息”选项卡上完成,我想将其保存在日志文件中。

有没有办法获得那个输出? (或SQL Server 2008中存储备份进程和结果的表?)

SQL Server 2008日志包含一些内容,但它不像“消息”选项卡那样详细。

2 个答案:

答案 0 :(得分:3)

  

Invoke-Sqlcmd不显示   消息,例如PRINT的输出   声明,除非你指定   Windows PowerShell -Verbose常见   参数。例如:

Invoke-Sqlcmd -Query "PRINT N'abc';" -Verbose

Source

答案 1 :(得分:2)

一个可以帮助某人的工作示例:

$ps = [PowerShell]::Create()
[ref]$e = New-Object System.Management.Automation.Runspaces.PSSnapInException
$ps.Runspace.RunspaceConfiguration.AddPSSnapIn( "SqlServerCmdletSnapin100", $e ) | Out-Null
$ps.AddCommand( "Invoke-Sqlcmd" ).AddParameter( "Verbose" ).AddParameter( "ServerInstance", "localhost\SQLEXPRESS2K8" ).AddParameter( "Query", "BACKUP DATABASE xxx TO DISK = N'c:\tmp\xxx.bak' WITH FORMAT, STATS = 10" )
$ps.Invoke()
$ps.Streams.Verbose | % { $_.Message} | Out-File c:\tmp\ps002.txt
cat c:\tmp\ps002.txt