异类查询需要ANSI_NULLS和ANSI_WARNINGS选项的连接设置。 这将确保一致的查询

2019-09-16 17:22发布

我已经检查了整个网络,但没有找到,这似乎为我工作的解决方案..

我已经重新创建我的存储过程,并确保有这些行作为第一行:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_WARNINGS ON
GO
CREATE PROCEDURE test_insert
AS
....
BEGIN
...
END

当从PHP调用我的存储过程,我只得到这个错误。 它工作在SQL Server细..我真的不知道还有什么我可以帮do..please我; _;

Answer 1:

增加了在这之前你的说法,而不是在主查询开始

$result = mssql_query("SET ANSI_NULLS ON;");
$result = mssql_query("SET ANSI_WARNINGS ON;"); 


Answer 2:

这是工作...尝试像这样的例子

create procedure dbo.access_update @O_SQL_Error_State int = NULL     output

as

set ANSI_NULLS ON 

SET ANSI_WARNINGS ON    

....
....

GO


Answer 3:

它不是经常一个更好的答案是另一个论坛上-但根据这个帖子 ,SET命令必须是CREATE PROCEDURE之前。 经过测试,与SQL 2017年工作

例如:

SET ANSI_WARNINGS ON
SET ANSI_NULLS ON 

CREATE PROCEDURE  dbo.access_update @O_SQL_Error_State int = NULL  output
as 
...


文章来源: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics