我在VS2012上的SQL Server(2014)数据库项目中收到以下错误:错误SQL46010:%附近的语法不正确。
这是给出错误的代码:
SELECT distinct sys.fn_PhysLocFormatter(C.%%physloc%%) as id
FROM T_Customer C
查询在SQL Server中运行得很好,但我想摆脱VS中的错误,以便能够编译整个项目。
答案 0 :(得分:0)
使用未记录的语法时,这是一种风险。
SSDT解析器将在那里期待一个标识符。列名称没有引用它,因此语法要求它应该符合rules for regular identifiers或者是少数记录的例外之一(例如$identity
,{{1 }})
除非您将存储过程更改为不使用该语法或将其隐藏在解析器中(例如在$rowguid
内),否则您将无法构建项目。
我建议重写不要使用语法。问题中显示的方法极不可能成为任何事物的良好解决方案。有可能在面对导致行移动的并发写入时,它不会按需运行。