Desde el punto de vista del desarrollo de software y dado que no soy experto en SQL Server; apenas
si tengo el conocimiento sobre el SQL como lenguage, necesario para obtener los resultados deseados
desde mi aplicación. Me surgió entonces el siguiente dilema, que creo yo, requiere del concepto de
algún experto, por eso acudo a Uds:
La idea básica es utilizar un sp_ para averiguar si una fila de cualquier tabla está referenciada en
otras tablas con el propósito de marcar las filas como bloqueadas en la interfaz de ususario de mi
aplicación. Para ello tengo dos alternativas diseñadas:
*******************************************************
1. Un sp_HasRef, que, de acuerdo con el nombre de la tabla y el ID de la fila consulta la existencia
de referencias en otras tablas asi:
IF (@RowTName = 'MyTabla')
BEGIN
IF EXISTS (SELECT * FROM MyTableRefA WHERE RefID = @RowID)
RETURN 1
ELSE IF EXISTS (SELECT * FROM MyTableRefB WHERE RefID = @RowID)
RETURN 1
ELSE
RETURN 0
END
ELSE IF (@RowTName = 'MyOtherTabla')
...
script se hace un poco extenso y tedioso, adicionalmente, no sé que efectos de rendimiento pueda
tener y es justo qui donde necesito que me ayuden (=P).
*******************************************************
2. Un sp_HasAnyRef Que hace uso de sysobjects, sysreferences, syscolumns y un cursor para determinar
las posibles referencias de un Una fila culquier tabla, no lo pego por que está un poco enrredado y
largo pero supongo que intuyen como lo hago.
que éste sp no se ejecute cuando se invoque desde una cuenta de usuario con derechos restringidos?;
dado que uiliza tablas del systema.
De antemano gracias.
Cordial saludo,
-> Said H. López
Leer las respuestas