Sql-Server-2008-R2

SQLCMD - 將日期添加到 CSV。在命令提示符中執行時,它可以工作,在作業中時,然後 %date

  • September 16, 2014

我一直在努力為 CSV 名稱添加日期:為簡潔起見,我只是在這裡取日期的第一個字元。

在 SQL 命令中,這有效:

sqlcmd -S localhost -d master -E -W -w 999 -s "," -Q "SELECT D.* FROM sys.databases D" -o "C:\sqlcmd%date:~1,1%.csv"

但是當我嘗試在作業步驟中使用完全相同的程式碼時,文件名是

sqlcmd_%date

我無法執行 xp_commandShell,請問有沒有辦法讓動態日期在 SQLCmd 中工作?我已經閱讀了很多文章,例如

嘗試使用代理令牌,例如

sqlcmd -S .\sql2012 -d master -E -W -w 999 -s "," -Q "SELECT D.* FROM sys.databases D" -o "c:\temp\sqlcmd$(ESCAPE_NONE(DATE)).csv"

這對我有用。提醒一下,bcp 是比較適合這種提取的工具;您不會遇到此處未處理的標題和“受影響的行”問題。

引用自:https://dba.stackexchange.com/questions/76727