SQL Server 2008: как получить вкладку «Сообщения» (в Management Studio) с помощью powershell - PullRequest
3 голосов
/ 16 мая 2011

Я использую invoke-sqlcmd для управления базами данных, все работает нормально. Я сохраняю вывод вкладки «Результаты» в Management Studio в файл журнала.

Когда я делаю BACKUP DATABASE, вывод выполняется на вкладке «Сообщения», и я хотел бы сохранить его в лог-файле.

Есть ли способ получить этот вывод? (или таблица в SQL Server 2008, в которой хранятся ход и результаты резервного копирования?)

Журналы SQL Server 2008 содержат что-то, но оно не такое подробное, как вкладка «Сообщения».

Ответы [ 2 ]

3 голосов
/ 16 мая 2011

Invoke-Sqlcmd не отображается сообщения, такие как вывод PRINT заявления, если вы не укажете Windows PowerShell -Verbose common параметр. Например:

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

Источник

2 голосов
/ 18 мая 2011

Рабочий пример, если он может кому-то помочь:

$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...