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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Anonimo
18/11/2003 - 16:10 | Informe spam
Muchísimas gracias Carlos, no conocía esa variables de
entorno.
Un saludo.

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.


.

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