如果有人可以帮助解决这个问题,我将非常感激。我现在已经挣扎了太久了,似乎无法解决。
我有一个带有存储过程的SSDT项目(VS2012,SQL2008) 引用链接服务器。
项目成功构建
尝试使用(localdb)或“常规”SQL进行部署时 使用F5或Schema Compare的服务器部署失败,因为链接服务器未在目标中定义
定义链接服务器后,项目仍然无法部署 任何引用链接服务器的存储过程:
错误200 SQL72014:.Net SqlClient数据提供程序:消息7405,级别16, 状态1,过程usp_MemEligGetFullData,第157行异构 查询需要设置ANSI_NULLS和ANSI_WARNINGS选项 用于连接。这确保了一致的查询语义。启用 这些选项然后重新发出您的查询。
将SET ANSI_NULL ON和SET ANSI_WARNINGS ON添加到这些存储过程没有帮助,也没有选择项目属性的数据库设置中的相应复选框。
对于企业环境中的整个团队来说,这是一个阻塞问题,所以,如果有人对这种情况发生了什么有任何想法,我将非常感激!
答案 0 :(得分:1)
答案 1 :(得分:0)
尝试通过SSMS创建存储过程,但是在创建过程语句之前的批处理中执行SET ANSI_NULLS ON和SET ANSI_WARNINGS ON,如下所示:
[ { _id: 5534306515a734345d550c29,
receivedData:
[ { from: 5535357e95ce31e04a994e2a,
data: 553549abea87c000454fa623,
companyid: 53feeaa2e4c1087e53bf4a2a }]
如果成功,则检查SSDT生成的脚本是否还包含create procedure语句之前的set语句。如果没有,请确保已启用“脚本数据库选项”设置。如果它仍然没有,那么在最坏的情况下,您可以创建deployment contributor来修改生成的TSQL。