0

J'ai créé un index unique (la description de cas doit être unique si IsDelete! = 1)a échoué parce que arithabort incorrect mise

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] 

Puis, quand je lance la procédure suivante, il lance « Mise à jour a échoué parce que les options SET suivantes ont paramètres incorrects: 'ARITHABORT'. Vérifiez que les options SET sont correctes pour une utilisation avec les index filtrés. '

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

    RETURN 1 
END 

J'ai essayé d'ajouter SET ARITHABORT ON avant l'instruction UPDATE, mais cela n'a rien fait.

Toute aide est grandement appréciée!

+0

Quel niveau de compatibilité DB utilisez-vous? Essayez de le définir sur une version supérieure (idéalement, la version actuelle de votre moteur de base de données :)). – Luaan

Répondre

0

Si vous utilisez SQL Server essayez d'appliquer les paramètres suivants:

1) Ouvrez SQL Server Management Studio. 2) Cliquez avec le bouton droit sur le nom de la base de données que vous utilisez et sélectionnez Propriétés> Menu Options. Définissez ensuite Arithmetic abort enabled = True dans la boîte de dialogue ouverte.

Remarque: J'ai également essayé d'appliquer les mêmes paramètres en utilisant un script, mais l'utilisation de cette méthode via SSMS est préférable d'appliquer ce paramètre.

Espérons que cela aide ...

+0

Il s'est avéré que je n'avais pas besoin d'utiliser un index filtré, donc je n'ai pas eu l'occasion d'essayer votre solution. Merci pour votre aide de toute façon! Peut-être que ça aidera quelqu'un d'autre à avoir le même problème. – Kate