【发布时间】:2017-04-05 19:06:33
【问题描述】:
我的 SSDT 数据库发布失败,因为它错误地认为嵌入的字符串引用了 SQLCMD 变量:
EXEC xp_cmdshell 'powershell.exe $(Get-Date).IsDaylightSavingTime()'
我可以手动运行此语句(在 SSMS 中)并获得所需的结果(令人遗憾的是“真实”),但发布阻塞试图解析该语句:
SQL 执行错误:发生致命错误。找不到变量 Get-Date。
SQL 执行错误:发生致命错误。解析 EXEC xp_cmdshell 'powershell.exe $(Get-Date).IsDaylightSavingTime()' 时遇到不正确的语法。
如何在不对其进行混淆或将其添加到数据库项目中的 SQLCMD 变量列表中的情况下使该语句不会导致发布失败?
(或者也许有一种更简单的方法来检查服务器的时区是否遵守 Godforsaken DST?美国的时区标识符说“标准”,无论是否真的在我们的开发人员机器上流行。并且从 GETDATE() 更改所有引用GETUTCDATE() 是不可行的。)
【问题讨论】:
标签: sql powershell sql-server-data-tools sqlcmd