Я создаю хранимую процедуру с настройкой по умолчанию, например:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
Create PROCEDURE [dbo].[TestSP]
AS
BEGIN
set arithabort off
set arithignore on
--.....
END
Это нормально. Затем я создал отфильтрованный уникальный индекс в таблице для ненулевого значения в БД, после чего я больше не могу запускать какую-либо хранимую процедуру в SQL Server Management Studio. Ошибка, которую я получаю, выглядит примерно так:
УДАЛИТЬ (или ВСТАВИТЬ) не удалось, поскольку следующие параметры SET имеют неверные настройки: «ANSI_NULLS, QUOTED_IDENTIFIER». Убедитесь, что параметры SET подходят для использования с индексированными представлениями и/или индексами вычисляемых столбцов, и/или отфильтрованными индексами, и/или уведомлениями о запросах, и/или методами типа данных XML, и/или операциями пространственного индекса.
Я пытаюсь запустить хранимую процедуру, например:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
EXEC TestSP
Or
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
EXEC TestSP
Я все еще получаю ошибку выше. Я очень смущен. Как решить эту проблему?
OFF
? Вы знаете, чтоSET ANSI_NULLS OFF
устарела, начиная с SQL Server 2005. , верно? Прекратите использовать его. - person Aaron Bertrand   schedule 23.04.2013