我的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