SQL数据项目:语法错误'$('

Mob*_*ord 5 sql escaping localdb visual-studio-2012

我有一个SQL数据项目,它是从我的生产数据库的模式创建的.它将所有存储过程引入到项目中,并且我尝试将生成的脚本部署到localdb以进行脱机开发.

问题是,似乎SQL数据项目正在尝试验证它生成的SQL脚本,但它遇到了包含字符串的第一个实例$(.

例1 INSERT INTO mytable (text) VALUES ('$(')

这会导致错误

$('正在解析时遇到了不正确的语法.

例2 INSERT INTO mytable (text) VALUES ('$(this')

这会导致错误

$(正在解析此'时遇到了错误的语法.

它似乎是SQL数据项目解析验证中的一个错误,即使脚本在SQL Management Studio中正常运行,也会阻止部署成功.

更新 我尝试了一些想法,似乎问题是在SQL数据项目解析字符串和遭遇时$(.此外,$(在字符串中的所有内容都会被错误捕获,直到下一个单引号实例(无论是转义单引号还是字符串单引号的结尾)

Mob*_*ord 4

SQL Data Tools 生成的用于部署数据库的脚本似乎$()用作变量替换的一种方式。为了解决这个问题,我必须将字符串的内容替换为

CHAR(36) + '()' 代表 $()

这样解析器就不会尝试将其视为变量。