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

#1 Javier Loria
01/12/2003 - 13:56 | Informe spam
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.
Respuesta Responder a este mensaje
#2 Alberto
01/12/2003 - 16:11 | Informe spam
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.


Respuesta Responder a este mensaje
#3 Accotto Maximiliano D.
01/12/2003 - 16:15 | Informe spam
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.
>
>


Respuesta Responder a este mensaje
#4 Alberto
01/12/2003 - 16:35 | Informe spam
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.
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Maximiliano Damian Accotto
01/12/2003 - 16:43 | Informe spam
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.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida