Personalizar mensajes de error sobre restricciones

20/09/2004 - 06:19 por El principiante | Informe spam
Hola,

Hay forma de en una tabla sql server personalizar los mensajes de error que
salen cuando se viola una restriccion ?

Gracias

Preguntas similare

Leer las respuestas

#1 Javier Loria
20/09/2004 - 07:50 | Informe spam
Hola:
Mas o menos :(
Puedes personalizar el mensaje pero no puedes evitar el envio del
primero.
Ejemplo:
=INSERT Tabla(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ValN)
IF @@ERROR <> THEN
BEGIN
RAISERROR('Mi mensaje de Error.',16,1)
ROLLBACK
RETURN 1
END
= En este caso la estacion recibira 2 codigos de error, el primero que es
el original de SQL y el segundo personalizado. Los mensajes de error de
usuario empiezan en 50000, asi que es "facil" en la estacion tomar
unicamente los personalizados.

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"El principiante" wrote in message
news:
Hola,

Hay forma de en una tabla sql server personalizar los mensajes de error


que
salen cuando se viola una restriccion ?

Gracias


Respuesta Responder a este mensaje
#2 Adrian D. Garcia
20/09/2004 - 19:02 | Informe spam
La unica forma que veo de hacer esto sin generar los mensajes de errores
propios de SQL Server es verificar antes de realizar el INSERT/UPDATE la
condicion de la restriccion.
El codigo seria algo asi:

IF NOT EXISTS(SELECT * FROM WHERE ) -- Verificar que exita un valor
en una tabla
BEGIN
RAISERROR('Mi mensaje de Error.',16,1)
RETURN
END

UPDATE mitabla
SET .

De todas formas esto generaria codigo adicional a mantener que muy
facilmente puede desincronizarse con el eschema de la base de datos.
Otra forma de hacer esto es atrapar el error en el cliente, verificar si los
nros. de error pertenecen a los asociados con violaciones de PK o FK y
emitir el propio error. Esto es muy sencillo si tienes centralizado el
codigo de acceso a la base de datos, pero si lo tienes desparramado por toda
tu aplicacion es practicamente imposible de hacer.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"El principiante" wrote in message
news:
Hola,

Hay forma de en una tabla sql server personalizar los mensajes de error


que
salen cuando se viola una restriccion ?

Gracias


Respuesta Responder a este mensaje
#3 El principiante
20/09/2004 - 21:26 | Informe spam

Otra forma de hacer esto es atrapar el error en el cliente, verificar si


los
nros. de error pertenecen a los asociados con violaciones de PK o FK y
emitir el propio error.



Te refieres a atrapar el codigo del error sin que SQL Server reporte el
mensaje automaticamente?
Si es asi, como se podria hacer eso ?
Respuesta Responder a este mensaje
#4 Adrian D. Garcia
21/09/2004 - 19:31 | Informe spam
Me refiero a que cuando SQL Server reporta un nro. de error asociado a una
violacion de FK/PK, entonces, atraparlo en el cliente y cambiarlo por uno
propio. Dependiendo el lenguaje esto se puede hacer bastante facil
accediendo a las colecciones de errores de ADO, a la excepcion SQLExecption
en ADO.NET, etc. En esas estructuras/clases hallaras el codigo nativo de SQL
Server como una propiedad mas.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"El principiante" wrote in message
news:%
>
> Otra forma de hacer esto es atrapar el error en el cliente, verificar si
los
> nros. de error pertenecen a los asociados con violaciones de PK o FK y
> emitir el propio error.

Te refieres a atrapar el codigo del error sin que SQL Server reporte el
mensaje automaticamente?
Si es asi, como se podria hacer eso ?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida