我想在Visual Studio 2013中定义的SSDT数据库中为我的表添加一个触发器。触发器可以通过" Add New Trigger"添加。在可视化表视图中。但是,使用SQLCMD变量似乎不是表定义中的一个选项,因为它包含在构建中。所以我创建了一个postdeploy脚本,它将添加触发器,这也会产生错误。将触发器添加为独立脚本运行正常但无法实际添加触发器,因此看起来它什么都不做。
变量在项目属性中定义为$(VariableName)
无论如何使用它们,它们总是会产生无用的错误。我在其他地方使用所述变量,但在创建触发器时似乎有些特殊。
直接使用它们就像:
DECLARE @variable nvarchar(50) = $(VariableName)
错误:" SQL80001:' VariableName'附近的语法不正确。期待'('或SELECT"
将它们放在如下字符串中:
DECLARE @variable nvarchar(50) = '$(VariableName)'
只需将变量名称设置为变量,而不检索配置的值。
将其括在方括号中,如:
DECLARE @variable nvarchar(50) = [$(VariableName)]
删除编译时的错误并检索该值,但在部署时会产生错误:"无效的列名'值'"
使用SQLCMD配置制作触发器的正确方法是什么?