PRB: Error "INSERT Failed" When You Update Table Referenced in an Indexed View


When you run a stored procedure or SQL INSERT statement directly, which attempts to insert a row into a table that is referenced in an indexed view, the following error may occur:

INSERT failed because the following SET options have incorrect settings: 'ARITHABORT'
Furthermore, this error may occur even if "SET ARITHABORT ON" is included in the batch or stored procedure that attempts the INSERT.


To successfully insert a row into a table that is referenced in an indexed view, the SQL ARITHABORT configuration setting must be set to ON. Furthermore, the statement that applies this configuration setting must be executed in its own batch. Because stored procedures contain only one batch, adding the statement to the procedure does not work.


To resolve this problem, add the following ADO code to your application after you open the connection to your database:
MyConnection.Execute "SET ARITHABORT ON"
where MyConnection is a reference to the ADO connection object you are using to run the stored procedure that performs an INSERT or the SQL INSERT statement.


This behavior is by design.

More Information

SET ARITHABORT ON is one of the options that is not automatically set for connections that use the OLE DB Provider for SQL Server or the SQL Server ODBC driver. Because OLE DB and ODBC connections do not specify an ARITHABORT setting, connections default to the server default, which is ARITHABORT OFF.


For more information, see the "Designing an Indexed View" and "Creating an Index" topics in SQL Server 2000 Books Online.

Makale No: 305333 - Son İnceleme: 4 Ağu 2008 - Düzeltme: 1

Geri bildirim