使用%% physloc %%的VS数据库项目错误

时间:2018-01-18 15:57:54

标签: sql-server visual-studio-2012

我在VS2012上的SQL Server(2014)数据库项目中收到以下错误:错误SQL46010:%附近的语法不正确。

这是给出错误的代码:

SELECT distinct sys.fn_PhysLocFormatter(C.%%physloc%%) as id
FROM T_Customer C

查询在SQL Server中运行得很好,但我想摆脱VS中的错误,以便能够编译整个项目。

1 个答案:

答案 0 :(得分:0)

使用未记录的语法时,这是一种风险。

SSDT解析器将在那里期待一个标识符。列名称没有引用它,因此语法要求它应该符合rules for regular identifiers或者是少数记录的例外之一(例如$identity,{{1 }})

除非您将存储过程更改为不使用该语法或将其隐藏在解析器中(例如在$rowguid内),否则您将无法构建项目。

我建议重写不要使用语法。问题中显示的方法极不可能成为任何事物的良好解决方案。有可能在面对导致行移动的并发写入时,它不会按需运行。