Raise error con parámetros

01/12/2003 - 11:03 por Alberto | Informe spam
En un trigger envío un mensaje de error con raiserror creado anteriormente
con sp_addmessage. El mensaje fue añadido del siguiente modo:
sp_addmessage 60000, 16, 'El cliente %s debe existir'

En el trigger lanzo el mensaje del siguiente modo:
if exists
(
select 'true'
from inserted i
left join customers c
on i.customerid = c.customerid
where c.customerid is null
)
begin
raiserror (60000, 16, 1, 'CustomerID')
rollback tran
end

Al probarlo veo lo siguiente:
Servidor: mensaje 60000, nivel 16, estado 1, procedimiento
PedidoTieneCliente, línea 14
pero no aparece el mensaje "el cliente ... debe existir'.

¿Por qué?

Gracias por la ayuda.

Preguntas similare

Leer las respuestas

#6 Alberto
01/12/2003 - 18:23 | Informe spam
Ya indiqué el código completo. Lo volví a probar y ahora ya me aparece el
mensaje pero me pone "CustomerID" en lugar del código del cliente que usé en
la inserción.
Gracias por la ayuda.

"Maximiliano Damian Accotto" escribió
en el mensaje news:
mira a mi me funciona!! seria bueno q posties el codigo completo!! hasta
como agregaste el MSG en SQL.

Un saludo

Maximiliano Damian Accotto
"Alberto" escribió en el mensaje
news:
> Ya lo sé. Son simplemente pruebas. Me estraña muchísimo que no funcione
> correctamente el Raiserror.
> Gracias.
>
> "Accotto Maximiliano D." escribió


en
el
> mensaje news:%
> > Perdona!! pero porque usar Trigger en lugar de Claves?
> > Q te lleva a esta desicion para nada recomendada
> > Maximiliano Damian Accotto
> > "Alberto" escribió en el mensaje
> > news:
> > > Sí, es una clave foránea. La base de datos es Northwind pero sin las
> > > restricciones de clave foránea entre las tablas.
> > > Gracias.
> > > "Javier Loria" escribió en el mensaje
> > > news:
> > > > Hola Alberto:
> > > > Pues desde este lado funciona correctamente, el error debe


estar
> en
> > > otro
> > > > lugar, podrias enviar mas informacion sobre el contexto en que


esta
> > > > ocurriendo (Como estas haciendo el insert, o sobre la tabla sobre


la
> que
> > > > estas haciendo el trigger).
> > > > Por otra parte es mi idea o estas tratanto de implementar una
> llave
> > > > foranea?
> > > > Saludos,
> > > >
> > > > 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.
> > > > Alberto escribio:
> > > > > En un trigger envío un mensaje de error con raiserror creado
> > > > > anteriormente con sp_addmessage. El mensaje fue añadido del
> siguiente
> > > > > modo: sp_addmessage 60000, 16, 'El cliente %s debe existir'
> > > > >
> > > > > En el trigger lanzo el mensaje del siguiente modo:
> > > > > if exists
> > > > > (
> > > > > select 'true'
> > > > > from inserted i
> > > > > left join customers c
> > > > > on i.customerid = c.customerid
> > > > > where c.customerid is null
> > > > > )
> > > > > begin
> > > > > raiserror (60000, 16, 1, 'CustomerID')
> > > > > rollback tran
> > > > > end
> > > > >
> > > > > Al probarlo veo lo siguiente:
> > > > > Servidor: mensaje 60000, nivel 16, estado 1, procedimiento
> > > > > PedidoTieneCliente, línea 14
> > > > > pero no aparece el mensaje "el cliente ... debe existir'.
> > > > >
> > > > > ¿Por qué?
> > > > >
> > > > > Gracias por la ayuda.
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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