Linked server SSDT+LinkedServer=异构查询要求为连接设置ANSI_null和ANSI_WARNINGS选项

Linked server SSDT+LinkedServer=异构查询要求为连接设置ANSI_null和ANSI_WARNINGS选项,linked-server,sql-server-data-tools,Linked Server,Sql Server Data Tools,如果有人能帮助解决这个问题,我将不胜感激。我已经挣扎太久了,似乎无法解决 我有一个SSDT项目VS2012和SQL2008,其中的存储过程 引用链接的服务器 该项目建设成功 尝试部署时,使用localdb或“常规”SQL 使用F5或架构比较的服务器部署失败,因为未在目标中定义链接的服务器 定义链接服务器后,项目仍然无法部署 引用链接服务器的任何存储过程,包括: 错误200 SQL72014:.Net SqlClient数据提供程序:Msg 7405,级别16, 状态1,程序usp_Memelig

如果有人能帮助解决这个问题,我将不胜感激。我已经挣扎太久了,似乎无法解决

我有一个SSDT项目VS2012和SQL2008,其中的存储过程 引用链接的服务器

该项目建设成功

尝试部署时,使用localdb或“常规”SQL 使用F5或架构比较的服务器部署失败,因为未在目标中定义链接的服务器

定义链接服务器后,项目仍然无法部署 引用链接服务器的任何存储过程,包括:

错误200 SQL72014:.Net SqlClient数据提供程序:Msg 7405,级别16, 状态1,程序usp_MemelightfullData,第157行 查询需要设置ANSI_空值和ANSI_警告选项 为了连接。这确保了一致的查询语义。使可能 选择这些选项,然后重新发出查询

在这些存储过程中添加SET ANSIU NULL ON和SET ANSIU WARNINGS ON没有帮助,在项目属性的数据库设置中选择相应的复选框也没有帮助


对于企业环境中的整个团队来说,这是一个阻碍问题,因此,如果有人知道为什么会发生这种情况,我将不胜感激

尝试通过SSMS创建存储过程,但在create procedure语句之前的批处理中执行SET ANSIU NULLS ON和SET ANSIU WARNINGS ON,如下所示:

SET ANSI_NULLS ON 
SET ANSI_WARNINGS ON
GO
CREATE PROCEDURE usp_MemEligGetFullData AS /* stuff */

如果成功,则检查SSDT生成的脚本是否也包含create procedure语句之前的set语句。如果没有,请确保已启用脚本数据库选项设置。如果仍然没有,那么在最坏的情况下,您可以编写一个脚本来修改生成的TSQL。

尝试通过SSMS创建存储过程,但在create procedure语句之前的批处理中执行SET ANSIU NULLS ON和SET ANSIU WARNINGS ON,如下所示:

SET ANSI_NULLS ON 
SET ANSI_WARNINGS ON
GO
CREATE PROCEDURE usp_MemEligGetFullData AS /* stuff */
如果成功,则检查SSDT生成的脚本是否也包含create procedure语句之前的set语句。如果没有,请确保已启用脚本数据库选项设置。如果仍然没有,那么在最坏的情况下,您可以编写一个脚本来修改生成的TSQL

在Visual Studio中, 右键单击存储过程 点击属性 将ANSI空值更改为“开” 在Visual Studio中, 右键单击存储过程 点击属性 将ANSI空值更改为“开”
当我将其更改为“开”时,我看到警告消息属性值无效。你对此有什么想法吗?你是从列表中选择的吗?还是你手动输入的?如果手动键入,请尝试将其更改为“开”,而不是“开”。当我将此更改为“开”时,我发现警告消息属性值无效。你对此有什么想法吗?你是从列表中选择的吗?还是你手动输入的?如果手动输入,请尝试将其更改为“开”,而不是“开”