создать хранимую процедуру с установкой по умолчанию, как:Ошибка удаления/вставки с фильтрованным индексом на SQL Server 2008?
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. Я получаю ошибку что-то вроде:
DELETE (или INSERT) не потому, что следующие параметры SET имеют неправильные параметры: 'ANSI_NULLS, QUOTED_IDENTIFIER'. Убедитесь, что параметры SET верны для использования с индексированными представлениями и/или индексами для вычисленных столбцов и/или отфильтрованных индексов и/или уведомлений запросов и/или методов типа данных XML и/или операций пространственного индекса.
Я пытаюсь запустить хранимую процедуру, как:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
EXEC TestSP
Или
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
EXEC TestSP
Я все еще получаю выше ошибки. Я очень смущен. Как решить эту проблему?
Что произойдет, если ansi_nulls установлен при создании хранимой процедуры? –
Почему вы создали процедуру с этими двумя настройками 'OFF'? Вы знаете, что ['SET ANSI_NULLS OFF' устарел с SQL Server 2005] (http://msdn.microsoft.com/en-us/library/ms143729 (v = sql.90) .aspx), правильно? Прекратите использовать его. –