我的SSDT数据库发布是失败的,因为它错误地以为嵌入字符串指的是SQLCMD变量:SQL服务器SSDT发布失败想了PowerShell命令使用SQLCMD变量
EXEC xp_cmdshell 'powershell.exe $(Get-Date).IsDaylightSavingTime()'
我可以手动运行该声明(SSMS中),并得到想要的结果(这是令人遗憾的“真”),但发布扼流圈试图解析声明:
SQL Execution error: A fatal error occurred. The variable Get-Date could not be found.
SQL Execution error: A fatal error occurred. Incorrect syntax was encountered while EXEC xp_cmdshell 'powershell.exe $(Get-Date).IsDaylightSavingTime()' was being parsed.
如何获得这种说法不破产,也不会混淆它的发布或将其添加到d中的SQLCMD变量列表中atabase项目?
(或者也许有一种更简单的方法来检查服务器的时区是否能观察到神秘的DST?美国的时区标识符表示“标准”,而不管在我们的开发人员机器上实际占主导地位,并且将所有引用从GETDATE )GETUTCDATE()是不可行的。)
这有效(虽然以混淆的方式,最好只做'$'+'(stuff)'),但它必须设置一个变量是一个VARCHAR(也不是VARCHAR(MAX )但有限的长度)。谢谢。 – Elaskanator