我检查了整个网络,找不到似乎对我有用的解决方案..
我已经重新创建了我的存储过程,确保将这些行作为第一行:
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中工作正常.. 我真的不知道我还能做什么..请帮助我; _;
答案 0 :(得分:5)
在您的陈述之前而不是在主要查询的开头
添加此内容$result = mssql_query("SET ANSI_NULLS ON;");
$result = mssql_query("SET ANSI_WARNINGS ON;");
答案 1 :(得分:1)
这是一个有效的例子...... 试试这个
create procedure dbo.access_update @O_SQL_Error_State int = NULL output
as
set ANSI_NULLS ON
SET ANSI_WARNINGS ON
....
....
GO
答案 2 :(得分:0)
通常在另一个论坛上找不到更好的答案-但是根据this post,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
...