2013-02-26 72 views
0

我已經寫在一個批處理文件中FOLL SQL查詢從遠程服務器獲取結果使用SQLCMD輸出文件的時間戳推杆。在批處理文件

SQLCMD -S "ServerName -U "uer" -P "Pass" -W -d"Interface" -Q"select LEFT(Zone_Prefix,5)+case when RIGHT(Zone_prefix,1)='N' then '_NORTH_WING' ELSE '_SOUTH_WING' END AS [Zone Name],cnt as [Zone Count] from (SELECT LEFT([Zone Name], 6) AS Zone_Prefix,SUM([Zone Count]) cnt FROM [Interface].[dbo].[VwZoneCount] WHERE [Zone Name] IN ('EB2GFNMZ','EB2GFSMZ','EB2GFNZ1','EB2GFSZ1','EB21FNZ1','EB21FSMZ','EB21FSZ1','EB22FNZ1','EB22FSZ1','EB22FSMZ','EB23FNMZ','EB23FNZ1','EB23FNZ2','EB23FNZ3','EB23FSMZ','EB23FSZ1','EB23FSZ2','EB24FNMZ','EB24FNZ1','EB24FSMZ','EB24FSZ1','EB25FNMZ','EB25FNZ1','EB25FSMZ','EB25FSZ1','EB26FNMZ','EB26FNZ1','EB26FSMZ','EB26FSZ1','EB27FNZ1','EB27FSMZ') GROUP BY LEFT([Zone Name], 6))tbl" -s" " -o"Output_hvac.xls" 

我正在執行此查詢在每4小時使用任務計劃程序。目前,對於每次執行,結果都被覆蓋。 我每次執行新的結果被追加或存放於不同的文件與時間戳後需要。 我主要關注的是把一個時間戳和保持所有先前執行的數據。

感謝

回答

1

添加時間戳到一個文件名當然是可能的,但它是在批量痛苦。

你追加的第一個選項是簡單得多。消除你-o選項,然後使用追加重定向來代替。添加時間戳只需要一個重定向的ECHO語句。

>>"Output_hvac.xls" echo %date% %time% 
>>"Output_hvac.xls" SQLCMD ...your_options_minus_the_-o_option... 

>>"Output_hvac.xls" (
    echo %date% %time% 
    SQLCMD ...your_options_minus_the_-o_option... 
)