我使用invoke-sqlcmd
来管理我的数据库,它运行正常。
我将Management Studio中“结果”选项卡的输出保存到日志文件中。
当我执行BACKUP DATABASE
时,输出在“消息”选项卡上完成,我想将其保存在日志文件中。
有没有办法获得那个输出? (或SQL Server 2008中存储备份进程和结果的表?)
SQL Server 2008日志包含一些内容,但它不像“消息”选项卡那样详细。
答案 0 :(得分:3)
Invoke-Sqlcmd不显示 消息,例如PRINT的输出 声明,除非你指定 Windows PowerShell -Verbose常见 参数。例如:
Invoke-Sqlcmd -Query "PRINT N'abc';" -Verbose
答案 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