我是新来的 T-SQL
我正在尝试备份我的数据库(使用 SQL Server 2008)。
当我尝试通过 sqlcmd -i inputfile
运行脚本时我收到此错误消息:'DATE' Scripting variable not defined
.
问题是我有这样一行:
... TO DISK = "FileName_$(ESCAPE_NONE(DATE)).BAK"
...
在文件名中包含日期,它将阻止它替换我的旧备份。
如果我在管理工作室中运行它,它可以工作,但如果我在命令行中使用 sqlcmd -i
运行它命令,然后它不起作用。
编辑:
我查看了工作历史记录,看到了以下错误消息:
"For SQL Server 2005 SP1 or later, you must use the appropriate ESCAPE_xxx macro to update job steps containing tokens before the job can run"
我不太明白这是什么意思。我已经用过$ESCAPE_NONE(DATE)
, 怎么了?
最佳答案
我知道老问题,但这是第一个结果,如果其他人有同样的问题,答案并不是特别容易找到。
包括 -x 开关以禁用环境变量为我解决了问题;
sqlcmd -x -i inputfile
关于sql - T-SQL - 未定义脚本变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12946257/