Excepciones SQL Server

18/11/2003 - 11:46 por [-H-] | Informe spam
Hola a todos.
Según me he informado en los libros de pantalla de sql
server 2000, la manera en la que sql server 2000 permite
manejar las excepciones es la siguiente:
1- o bien la elevamos mediante la cláusula RAISERROR
2- o bien la tratamos comprobándola con una condición, y
usando etiquetas para saltar a la parte de código que la
trate.
Mi problema es que necesito controlar el que, cuando hago
un SELECT, sobre una variable, me puedan ocurrir las
siguientes cosas:
1º) no encuentre ninguna fila (que NO ES LO MISMO que me
devuelva null)
2º) las filas devueltas son mas de una y no pueda
abarcarlas con la variable (en Oracle se conoce como TOO
MANY ROWS)

¿Que mecanismo ofrece SQL Server 2000 para controlar estas
dos excepciones?
Muchas gracias.
 

Leer las respuestas

#1 Carlos Sacristan
18/11/2003 - 13:41 | Informe spam
En SQL Server no existe el concepto de excepciones (espérate para ello a
la nueva versión); los errores se manejan comprobando el valor de @@ERROR.

Si necesitas enviar al cliente un error cuando no existan filas o cuando
sean más de una, tendrás que comprobar justo después de realizar la consulta
el valor de @@ROWCOUNT y enviar los mensajes que consideres al cliente
mediante RAISERROR.



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)
MVP SQL Server
Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"[-H-]" escribió en el mensaje
news:031001c3adc1$2aa02ea0$
Hola a todos.
Según me he informado en los libros de pantalla de sql
server 2000, la manera en la que sql server 2000 permite
manejar las excepciones es la siguiente:
1- o bien la elevamos mediante la cláusula RAISERROR
2- o bien la tratamos comprobándola con una condición, y
usando etiquetas para saltar a la parte de código que la
trate.
Mi problema es que necesito controlar el que, cuando hago
un SELECT, sobre una variable, me puedan ocurrir las
siguientes cosas:
1º) no encuentre ninguna fila (que NO ES LO MISMO que me
devuelva null)
2º) las filas devueltas son mas de una y no pueda
abarcarlas con la variable (en Oracle se conoce como TOO
MANY ROWS)

¿Que mecanismo ofrece SQL Server 2000 para controlar estas
dos excepciones?
Muchas gracias.

Preguntas similares