Гетерогенные запросы требуют установки параметров ANSI_NULLS и ANSI_WARNINGS для соединения. Это обеспечивает согласованную семантику запроса

Я проверил всю сеть и не смог найти решение, которое мне подходит...

Я воссоздал свою хранимую процедуру, убедившись, что эти строки в качестве первых строк:

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 он работает нормально.. я действительно не знаю, что еще я могу сделать.. пожалуйста, помогите мне;_;

2 ответа

Добавил это ДО вашего утверждения, а не в начале основного запроса

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

Это пример, который работает... Попробуйте это так

create procedure dbo.access_update @O_SQL_Error_State int = NULL     output

as

set ANSI_NULLS ON 

SET ANSI_WARNINGS ON    

....
....

GO

Не часто лучший ответ на другом форуме - но согласно этому посту, команды 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 
...
Другие вопросы по тегам