0

Я создал уникальный индекс (описание случая должно быть уникальным, если IsDelete! = 1)Не удалось, потому что установка неправильно ARITHABORT

CREATE UNIQUE NONCLUSTERED INDEX [UniqueCaseDescription] 
ON [tblCases] ([fldCaseDescription] ASC) 
WHERE [IsDeleted] = CAST(0 AS varbinary(1)) 
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 

Затем, когда я запускаю следующую процедуру она бросает «UPDATE не удалось, потому что следующие параметры SET имеют неправильные настройки: «ARITHABORT». Убедитесь, что параметры SET верны для использования с отфильтрованными индексами. '

ALTER PROC [usp_DeleteCase] (@fldCaseID UNIQUEIDENTIFIER) 
AS 
BEGIN 
    UPDATE tblCases 
    SET IsDeleted = 1 
    WHERE fldCaseID = @fldCaseID 

    RETURN 1 
END 

Я попытался добавить SET ARITHABORT ON до утверждения UPDATE, но ничего не сделал.

Любая помощь очень ценится!

+0

Какой уровень совместимости с DB вы используете? Попробуйте установить его на более высокую версию (в идеале, фактическую версию вашего механизма БД :)). – Luaan

ответ

0

Если вы используете SQL Server попытаться применить следующие настройки:

1) Откройте SQL Server Management Studio. 2) Щелкните правой кнопкой мыши имя базы данных, которое вы используете, и выберите «Свойства»> «Параметры». Затем установите Арифметическое прерывание enabled = True из открытого диалога.

Примечание: Я также попытался применить те же настройки с помощью сценария, но с помощью этого метода с помощью SSMS лучше применить этот параметр.

Надеюсь, это поможет ...

+0

Оказалось, что мне не нужно использовать отфильтрованный индекс, поэтому у меня не было возможности попробовать ваше решение. Спасибо за вашу помощь! Может быть, это поможет кому-то еще с той же проблемой. – Kate