Tecnología

Inicio

SQL disparador conjunto de resultados de error

Los factores desencadenantes son los procesos de SQL que se "disparan" cuando una condición particular de datos es válido para una mesa. Los equipos de programador de aplicaciones de base de datos con el administrador de la base para escribir disparadores para las tablas. Un disparador puede o no puede devolver un conjunto de resultados.

¿Qué hacen los disparadores dar la espalda?

El propósito principal de un disparador es la validación de datos. Hay factores desencadenantes de inserción, que se ejecutan cuando se inserta una fila en la tabla. Borrar y actualizar desencadena ejecutar las actualizaciones fila de deleción y de campo. Por lo general, un diseñador de la base de datos escribiría un disparador que devuelve un estado de éxito / fracaso de Boole. El disparador mantiene la integridad de los datos asegurándose de que no hay valores no válidos están en la mesa y no se realizan operaciones no válidas. Sin embargo, los disparadores pueden devolver un conjunto de resultados al igual que cualquier procedimiento almacenado de SQL.

El comportamiento inesperado

Disparadores que devuelven un conjunto de resultados pueden provocar un comportamiento impredecible en aplicaciones que no están diseñadas para esperar datos de nuevo. A veces, el autor del disparo, por lo general el administrador de base de datos, no puede comunicarse con el programador de la aplicación.

Solución para desencadenar errores de resultados

Activar la opción de SQL Server 'no permitir que los resultados de los disparadores' ON de la siguiente manera:

sp_configure 'show advanced options', 1
reconfigurar
sp_configure 'no permitir que los resultados de los disparadores', 1
reconfigurar

Esto cogerá ningún desencadenante desconocido devolver un conjunto de resultados y mostrar el mensaje de error apropiado.

Nota Importante estreno

El 'no permiten resultados de activadores "opción está disponible en Microsoft SQL Server 2008 R2. Sin embargo, se elimina en las versiones posteriores de SQL Server.