Гетерогенные запросы требуют установки параметров 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
...