Comportamento con le opzioni ARITHABORT e ARITHIGNORE impostate su ON
Se entrambe le opzioni per l'elaborazione delle query ARITHABORT e ARITHIGNORE sono impostate su ON, l'opzione ARITHABORT risulta prioritaria.
Le opzioni distinte ARITHABORT e ARITHIGNORE non sono correlate, ovvero se una delle due opzioni viene impostata su ON, l'altra non viene impostata automaticamente su OFF. Se, ad esempio, un'applicazione contiene le istruzioni seguenti, entrambe le opzioni vengono impostate su ON:
SET ARITHABORT ON
SET ARITHIGNORE ON
GO
A ogni esecuzione di un'istruzione SET in una stored procedure la nuova impostazione rimane attiva solo fino al completamento della procedura, dopodiché viene ripristinata l'impostazione della connessione relativa a tale opzione precedente all'esecuzione della procedura.
Risultato dell'impostazione ANSI_WARNINGS
L'impostazione dell'opzione ANSI_WARNINGS influisce sull'elaborazione delle query indipendentemente dall'impostazione corrente delle opzioni ARITHABORT e ARITHIGNORE.
Se ad esempio SET ARITHABORT o SET ARITHIGNORE è impostata su OFF e SET ANSI_WARNINGS è impostata su ON, in MicrosoftSQL Server verrà comunque restituito un messaggio di errore quando si verificano errori di divisione per zero o di overflow.
Nella tabella seguente viene descritto questo comportamento.
ARITHABORT |
ANSI_WARNINGS |
Comportamento |
---|---|---|
ON |
ON |
Viene interrotta solo l'istruzione. |
ON |
OFF |
Viene interrotto il batch. |
OFF |
ON |
Viene interrotta solo l'istruzione. |
OFF |
OFF |
L'esecuzione continua. Il valore è NULL. |
Vedere anche