Control en Store procedure

28/04/2004 - 02:16 por Alex. | Informe spam
Hola a todos los listeros..

Para ser sincero estoy recien empezando con esto del sql server, bueno aqui
va mi pregunta.

tengo el siguiente sp

CREATE PROCEDURE Usp_InsertarDestinos (@IdDestino [char](3), @Descripcion
[varchar](25))
AS
BEGIN TRAN
INSERT INTO LSDESTIN VALUES (@IdDestino, @Descripcion)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN

Ahora mando a ejecutar mi sp

exec Usp_InsertarDestinos "010", "Lima"

pero si el codigo 010 ya existe va a mandar un error cieto? el dichoso
primary key y un monton de cosas mas

pues bien lo que deseo es que no mande error sino que mande un mensaje que
ha habido un problema.

no se si me explique bien espero que me hayan podido captar la idea.

salu2

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
28/04/2004 - 02:30 | Informe spam
Hola, si te explicaste bien, pero no creo que lo puedas hacer, ya que es un
error de Sql en la integridad y lo que vos estas haciendo con el Store es
solo insertar y si violas un pk te mandara ese error

Suerte


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Alex." escribió en el mensaje
news:%
Hola a todos los listeros..

Para ser sincero estoy recien empezando con esto del sql server, bueno


aqui
va mi pregunta.

tengo el siguiente sp

CREATE PROCEDURE Usp_InsertarDestinos (@IdDestino [char](3), @Descripcion
[varchar](25))
AS
BEGIN TRAN
INSERT INTO LSDESTIN VALUES (@IdDestino, @Descripcion)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN

Ahora mando a ejecutar mi sp

exec Usp_InsertarDestinos "010", "Lima"

pero si el codigo 010 ya existe va a mandar un error cieto? el dichoso
primary key y un monton de cosas mas

pues bien lo que deseo es que no mande error sino que mande un mensaje que
ha habido un problema.

no se si me explique bien espero que me hayan podido captar la idea.

salu2









Respuesta Responder a este mensaje
#2 Isaías
28/04/2004 - 04:11 | Informe spam
Amigo Max, donde esta su paciencia en la respuestas,
bueno, tal vez sea la hora, por aca son las 21:00

CREATE PROCEDURE Usp_InsertarDestinos (@IdDestino [char]
(3), @Descripcion
[varchar](25))
AS

SET NOCOUNT ON
IF EXISTS(SELECT IdDestino FROM LSDESTIN WHERE IdDestino =
@IdDestino)
BEGIN
SELECT '<< ERROR >>, El registro '+@IdDestino+' ya
existe'
RETURN(0)
END

BEGIN TRAN
INSERT INTO LSDESTIN VALUES (@IdDestino, @Descripcion)
IF @@ROWCOUNT = 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
28/04/2004 - 04:16 | Informe spam
hola aMIGO, creo que eso no es lo que preguntaron :( porque el lo que quiere
(lo que entendi) es que en lugar de que Sql Marque los errores que los pueda
el capturar en su Store y al cliente enviarle otra cosa, va eso entendi yo,
pero es la hora 23:16 :(((

Suerte


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Isaías" escribió en el mensaje
news:52fc01c42cc6$16acb2e0$
Amigo Max, donde esta su paciencia en la respuestas,
bueno, tal vez sea la hora, por aca son las 21:00

CREATE PROCEDURE Usp_InsertarDestinos (@IdDestino [char]
(3), @Descripcion
[varchar](25))
AS

SET NOCOUNT ON
IF EXISTS(SELECT IdDestino FROM LSDESTIN WHERE IdDestino > @IdDestino)
BEGIN
SELECT '<< ERROR >>, El registro '+@IdDestino+' ya
existe'
RETURN(0)
END

BEGIN TRAN
INSERT INTO LSDESTIN VALUES (@IdDestino, @Descripcion)
IF @@ROWCOUNT = 0
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN

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