我有一个Visual Studio SSDT项目,其中一个视图通过4部分命名引用链接服务器。我在链接服务器上为数据库设置了一个项目,并创建了从主项目到“链接服务器”项目的引用,一切正常。
我被指示使用OpenQuery而不是4部分命名约定,因为实际上OpenQuery的运行速度比通过4部分命名约定查询快2-3倍。
但是,当我在SSDT中更改视图以使用打开查询时,我收到错误: 严重性代码描述项目文件行抑制状态 错误SQL71501:查看:[schema]。[view]有一个未解析的对象引用[LINKEDSERVER]。
我尝试在项目的脚本中定义[LINKEDSERVER]:
exec master.dbo.sp_addlinkedserver @server = N'LINKEDSERVER', @srvproduct=N'SQLSERVER', @provider=N'SQLNCLI', @datasrc=N'SERVERNAME'
并尝试将其添加到引用的项目中。
那么,如何将OpenQuery合并到SSDT项目中而不会产生SQL71501 /'未解析的对象'错误引用?
答案 0 :(得分:1)
我一直在同一个问题上作斗争。我解决了:
使用语法OpenQuery([LINKEDSERVER], ‘xxx’);
而非OpenQuery([$([LINKEDSERVER])], ‘xxx’);
我希望这会有所帮助!