15/11/2017, 06:29
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes Puntos: 2658 | |
Evitar devoluciones de error en un TRIGGER Explico el problema:
Un servicio que los responsables no quieren modificar realiza un INSERT en una tabla de mi base. Estos registros se duplican en ciertas condiciones y para evitarlo tengo tres soluciones:
1) Que ellos modifiquen la sintaxis de su inserción para evitarlas. NO lo van a hacer, y el acceso a datos que usan no es compatible con sintaxis propietarias de SQL Server que podrían resolverlo. Ya me dijeron que NO lo van a ahcer ellos.
2) Crear un indice UNIQUE en los campos fundamentales. Sería la solucion mas simple, pero eso dispararía un fallo de clave duplicada y ellos no tienen controladas las excepciones en su proceso, y ya me advirtieron que TAMPOCO lo van a modificar para eso.
3) Poner un TRIGGER que resuelva la situación, pero en estos casos para que funcione tengo que usar RISEERROR y devolver algo, que es justamente lo que tengo que evitar.
Tengo una posibilidad adicional, que es que invoquen un SP, algo que estoy negociando.
En definitiva, la pregunta es: ¿Es posible crear un trigger AFTER INSERT que valide si el registro ya existe, y en ese caso cancele el insert sin devolver error?
La idea es replicar lo que en otros DBMS es el resultado de un INSERT IGNORE...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |