Sql-Server
SQL Server 代理 - 不在輸出文件中顯示作業步驟詳細資訊和列標題
我有一個 SQL Server 代理作業,它按計劃執行選擇語句並將結果附加到 CSV 文件
(右鍵點擊作業–> 屬性–> 高級,然後將文件路徑添加到輸出文件位置)
這很好,除了它生成的輸出顯示
Job 'MyJobName' : Step1, 'Step Name' : Began executing YYYY-MM-DD HH-MM-SS
以及整個文件的列標題(它會在每個附加項中添加這個)
有沒有辦法不輸出作業名稱/步驟詳細資訊和列標題?
您可以使用 SQLCMD 執行此操作
詢問
記得添加 nocount 所以它不會將受影響的行添加到文件中
sqlcmd -Q"set nocount on; select * from sys.databases;" -S localhost -D master -o "c:\temp\test3.csv"
文件
類似於@Randi 的方法
如果 using
POWERSHELL
是一個選項,您可以將作業類型更改為POWERSHELL
並使用INVOKE-SQLCMD
。這種方法的一個可能缺點是因為
ConvertTo-CSV
自動用雙引號將輸出列括起來。以下腳本處理所有雙引號的消除,並從結果中刪除標題。Invoke-Sqlcmd -ServerInstance "." -Query "Select name from sys.databases where Database_ID <=4" | ConvertTo-Csv -NoTypeInformation | % {$_ -replace '"',''} | Select-Object -Skip 1 | Out-File ("C:\Test\test.txt") -Append -Force -Encoding ascii
由於使用了兩次執行 SQL 代理作業為我輸出以下內容
-Append
master tempdb model msdb master tempdb model msdb