2011-05-16 53 views
3

我正在使用invoke-sqlcmd來管理我的數據庫,它工作正常。 我將Management Studio中「結果」選項卡的輸出保存到日誌文件中。SQL Server 2008:如何使用powershell獲得「消息」選項卡(在Management Studio中)輸出

當我做一個BACKUP DATABASE,輸出在「消息」選項卡上完成,我想將它保存在日誌文件中。

有沒有辦法獲得該輸出? (或SQL Server 2008中存儲備份進程和結果的表)?

SQL Server 2008日誌包含某些內容,但不像「消息」選項卡那樣冗長。

回答

3

調用-SQLCMD不顯示 信息,如打印 語句的輸出,除非你指定 的Windows PowerShell -Verbose共同 參數。例如:

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

Source

+1

注意:在運行獲取幫助調用-SQLCMD回報幫助其還指出這些信息的信息。我提到這一點的唯一原因 - 當您對某個特定cmdlet有疑問時,get-help是一個很好的開始。 – 2011-05-16 16:52:58

+0

好的,謝謝我錯過了那一個 – anael 2011-05-17 06:36:54

+0

我在控制檯上得到了輸出,但沒有在我的日誌文件中。我的腳本中的另一個錯誤? 'invoke-sqlcmd -ServerInstance「myPC \ SQLEXPRESS2K8」-Query「BACKUP DATABASE test333 TO DISK = N'c:\ Backup \ test333.bak'WITH FORMAT,STATS = 10」-Verbose | Out-File -filePath「c:\ tmp \ ps.txt」' – anael 2011-05-17 07:14:15

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 
相關問題