8

我已经检查了整个网络,但找不到似乎对我有用的解决方案..

我重新创建了我的存储过程,确保将这些行作为第一行:

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 中运行良好..我真的不知道我还能做什么..请帮助我;_;

4

3 回答 3

9

在您的语句之前而不是在主查询的开头添加了这个

$result = mssql_query("SET ANSI_NULLS ON;");
$result = mssql_query("SET ANSI_WARNINGS ON;"); 
于 2015-08-17T06:06:16.747 回答
3

这是一个有效的例子......试试这样

create procedure dbo.access_update @O_SQL_Error_State int = NULL     output

as

set ANSI_NULLS ON 

SET ANSI_WARNINGS ON    

....
....

GO
于 2014-06-16T06:47:16.320 回答
1

它通常不是更好的答案是在另一个论坛上 - 但根据这篇文章SET命令必须在CREATE PROCEDURE. 经过测试并与 SQL Server 2017 一起使用。

例如:

SET ANSI_WARNINGS ON
SET ANSI_NULLS ON 
GO

CREATE PROCEDURE dbo.access_update 
    @O_SQL_Error_State int = NULL OUTPUT
AS
    ...
于 2019-04-01T11:38:00.853 回答