簡體   English   中英

在SQL Agent CmdExec中使用SQLCMD向輸出文件名添加日期嗎?

[英]Add a date to output filename using SQLCMD from within SQL Agent CmdExec?

我想使用SQL Agent下的SQLCMD從SQL Server數據庫中每周運行一次提取。 因為我需要將多個摘錄保存在同一共享中,所以我想使用當前日期作為摘錄文件名的一部分。 從命令行執行此操作時,我使用:

sqlcmd -S POC -i "\\org-data\data\dept\share\registry\SQLCMD\extractdata.sql" -s "|" -W -h-1 -o "\\org-data\data\dept\share\registry\Extracts\extractdata.%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt"

而且效果很好。

當我將同一條語句放入SQL Agent下的CmdExec時,我的日期變成語法錯誤-(“文件名,目錄名或卷標簽語法不正確”)

別人如何處理呢? 謝謝。

嘗試使用SQL Server代理令牌。 它們在MSDN文章“在作業步驟中使用令牌”中進行了描述。 DATE令牌以YYYYMMDD格式提供當前日期。 作為示例,請使用:

"...\Extracts\extractdata.$(ESCAPE_DQUOTE(DATE)).txt"

這對我不起作用

echo off
sqlcmd -m 1 -S 10.108.96.210\QA832 -U Exception -P Password1 -i E:\KCM_UAT\Exception.sql -o C:\Test_$(ESCAPE_DQUOTE(DATE)).txt  -W -h-1 -s "    "
set /p delExit=Press the ENTER key to exit...:

這樣寫出文件

Test_$(ESCAPE_DQUOTE(DATE)).txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM