PRB: Error "Error de INSERCIÓN" cuando se actualiza la tabla de referencia en una vista indizada

Síntomas

Cuando se ejecuta un procedimiento almacenado o SQL instrucción INSERT directamente, lo que se intenta insertar una fila en una tabla en la que se hace referencia en una vista indizada, puede producirse el siguiente error:

Error en INSERT porque las siguientes opciones SET tienen una configuración incorrecta: 'ARITHABORT'
Además, este error puede producirse incluso si "SET ARITHABORT ON" está incluido en el lote o procedimiento almacenado que intenta la INSERCIÓN.

Causa

Para insertar correctamente una fila en una tabla en la que se hace referencia en una vista indizada, la opción de configuración de SQL ARITHABORT debe establecerse en ON. Además, se debe ejecutar la instrucción en la que se aplica esta opción de configuración en su propio lote. Dado que los procedimientos almacenados contienen sólo un lote, si agrega la instrucción en el procedimiento no funciona.

Solución

Para resolver este problema, agregue el siguiente código de ADO a la aplicación después de abrir la conexión a la base de datos:
MyConnection.Execute "SET ARITHABORT ON"
donde MiConnection es una referencia al objeto connection de ADO que está utilizando para ejecutar el procedimiento almacenado que realiza una INSERCIÓN o la instrucción SQL INSERT.

Estado

Este comportamiento es por diseño.

Más información

SET ARITHABORT ON es una de las opciones que no se establece automáticamente para las conexiones que utilizan el proveedor OLE DB para SQL Server o el controlador ODBC de SQL Server. Dado que las conexiones OLE DB y ODBC no especifican un valor ARITHABORT, el valor predeterminado de conexiones para el servidor, que es ARITHABORT OFF.

Referencias

Para obtener más información, vea los temas "Diseñar una vista indizada" y "Crear un índice" en los libros en pantalla de SQL Server 2000.
Propiedades

Id. de artículo: 305333 - Última revisión: 22 ene. 2017 - Revisión: 1

Comentarios