Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Store Procedure con manejo de Excepciones

Estas en el tema de Store Procedure con manejo de Excepciones en el foro de SQL Server en Foros del Web. hola! soy nueva en manejo de base de datos y mis profesores no ayudan demasiado asi que consulto con los genios de esta pagina que ...
  #1 (permalink)  
Antiguo 13/10/2012, 13:50
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 12 años, 2 meses
Puntos: 0
Store Procedure con manejo de Excepciones

hola! soy nueva en manejo de base de datos y mis profesores no ayudan demasiado asi que consulto con los genios de esta pagina que se que me podran contestar.
Tengo el siguiente ejercicio:

p_MuestraNroPares(): Realizar un sp que devuelva los registros insertados en los ítems anteriores. En el caso de que la tabla esté vacía lanzar una excepción indicando dicho

y yo lo hice asi:

Código:
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[p_MuestraNroPares]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[p_MuestraNroPares]
GO

CREATE PROCEDURE p_MuestraNroPares
AS
BEGIN
	SET NOCOUNT ON
	DECLARE @DESCRIPCIONERROR VARCHAR(MAX)
	
BEGIN TRY
	BEGIN TRANSACTION
		SELECT * FROM NumeroPar
	COMMIT TRANSACTION
END TRY
BEGIN CATCH
	ROLLBACK TRANSACTION
	 
    INSERT INTO LOGERRORES 
	(DESCRIPCION, ERROR, FILA, 
	ERROR_LINE, ERROR_MESSAGE, ERROR_PROCEDURE, 
	ERROR_NUMBER, ERROR_SEVERITY, ERROR_STATE, FECALT, USERID
	)  
	VALUES (@DESCRIPCIONERROR,  @@ERROR, @@ROWCOUNT,
	ERROR_LINE(), ERROR_MESSAGE(), ERROR_PROCEDURE(), 
	ERROR_NUMBER(), ERROR_SEVERITY(),ERROR_STATE(),
	GETDATE(),SYSTEM_USER )       
	
	RAISERROR (@DESCRIPCIONERROR,16,1)  

END CATCH
END
GO

mis dudas son las siguientes:
1.- Como hago para que tire la excepcion porque si la tabla esta vacia con mi codigo la muestra igual, como hago para que no la muestre y tire un error??


Desde ya les agradesco. Mery
__________________
La vida es un asco, disfrutala....
  #2 (permalink)  
Antiguo 14/10/2012, 01:19
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 5 meses
Puntos: 40
Respuesta: Store Procedure con manejo de Excepciones

Yo añadiría la siguiente instrucción imediatamente después el Select:
Código SQL:
Ver original
  1. IF @@RowCount=0 RaisError('La tabla es vacía',16,1);
El parámetro de sistema @@RowCount obtiene el número de las filas de la última instrucción ejecutada, y si es 0 - inicia un error.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 14/10/2012, 09:56
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Store Procedure con manejo de Excepciones

gracias GeriReshef!! ahora entendi como manejar los errores. Saludos, Mery
__________________
La vida es un asco, disfrutala....

Etiquetas: excepciones, manejo, procedure, registro, select, store, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:37.