¿Como aplico una regla de no elimnar registro a menos que?

13/01/2004 - 14:31 por WBG | Informe spam
Saludos,

Tengo una tabla llamda tabla1 en mi BD de SQL Server 2000 que necesito
aplicarle una regla (condición) que no permita eliminar registros a menos
que exista en la Tabla2 o a menos que exista en la Tabla3.

Tabla1 , Tabla2 y Tabla3 tienen la misma esctructura.

Estructura

columna | tipo
=loan_id | varchar(15)
name | varchar(20)
address | varchar(30)

¿Como puedo realizar esto?

Desde ya gracias


Wilfredo Burgos

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
13/01/2004 - 14:37 | Informe spam
Deberias implementar un trigger para ello,

puedes revisar en los BOL que encontraras como se hace o en

www.portalsql.com

www.helpdna.net

Create Trigger o en español "Desencadenadores"

pd: si no te sale lo vemos por aca y te damos una mano ;)

Salu2



Maximiliano Damian Accotto


"WBG" escribió en el mensaje
news:%
Saludos,

Tengo una tabla llamda tabla1 en mi BD de SQL Server 2000 que necesito
aplicarle una regla (condición) que no permita eliminar registros a menos
que exista en la Tabla2 o a menos que exista en la Tabla3.

Tabla1 , Tabla2 y Tabla3 tienen la misma esctructura.

Estructura

columna | tipo
=> loan_id | varchar(15)
name | varchar(20)
address | varchar(30)

¿Como puedo realizar esto?

Desde ya gracias


Wilfredo Burgos



Respuesta Responder a este mensaje
#2 Liliana Sorrentino
13/01/2004 - 15:30 | Informe spam
Hola Wilfredo,
Como dice Maxi, la opción de los Triggers es válida, pero me parece que para
tu caso deberían ser los Triggers Instead Of, ya que deberían ejecutarse
antes del borrado.
Como uso SQL 7 y no puedo hacer pruebas de lo antedicho, te propongo este
delete que controla en las tablas 2 y 3, borrando lo que esté en una, otra,
o ambas.

delete tabla1
from tabla1 t1
left join tabla2 t2 on t1.loan_id = t2.loan_id
left join tabla3 t3 on t1.loan_id = t3.loan_id
where t2.loan_id is not null or t3.loan_id is not null

Saludos... Liliana.

"WBG" escribió en el mensaje
news:#
Saludos,

Tengo una tabla llamda tabla1 en mi BD de SQL Server 2000 que necesito
aplicarle una regla (condición) que no permita eliminar registros a menos
que exista en la Tabla2 o a menos que exista en la Tabla3.

Tabla1 , Tabla2 y Tabla3 tienen la misma esctructura.

Estructura

columna | tipo
=> loan_id | varchar(15)
name | varchar(20)
address | varchar(30)

¿Como puedo realizar esto?

Desde ya gracias


Wilfredo Burgos



Respuesta Responder a este mensaje
#3 Miguel Egea
13/01/2004 - 15:48 | Informe spam
Tal como te dice liliana un Instead of trigger solucionaría tu problema, en
cualquier caso y para ser claro, los instead of son 'en lugar de' no antes
de, es decir si pones un trigger instead of delete, dentro del trigger haces
tu borrado con los criterios que quieras, Entonces puedes usar la sentencia
que propone liliana cambiando tabla1 en el select (no en el delete) por la
tabla virtual deleted.

Saludos
Miguel Egea
"Liliana Sorrentino" escribió en el mensaje
news:
Hola Wilfredo,
Como dice Maxi, la opción de los Triggers es válida, pero me parece que


para
tu caso deberían ser los Triggers Instead Of, ya que deberían ejecutarse
antes del borrado.
Como uso SQL 7 y no puedo hacer pruebas de lo antedicho, te propongo este
delete que controla en las tablas 2 y 3, borrando lo que esté en una,


otra,
o ambas.

delete tabla1
from tabla1 t1
left join tabla2 t2 on t1.loan_id = t2.loan_id
left join tabla3 t3 on t1.loan_id = t3.loan_id
where t2.loan_id is not null or t3.loan_id is not null

Saludos... Liliana.

"WBG" escribió en el mensaje
news:#
> Saludos,
>
> Tengo una tabla llamda tabla1 en mi BD de SQL Server 2000 que necesito
> aplicarle una regla (condición) que no permita eliminar registros a


menos
> que exista en la Tabla2 o a menos que exista en la Tabla3.
>
> Tabla1 , Tabla2 y Tabla3 tienen la misma esctructura.
>
> Estructura
>
> columna | tipo
> => > loan_id | varchar(15)
> name | varchar(20)
> address | varchar(30)
>
> ¿Como puedo realizar esto?
>
> Desde ya gracias
>
>
> Wilfredo Burgos
>
>
>


Respuesta Responder a este mensaje
#4 WBG
13/01/2004 - 16:27 | Informe spam
Muchas gracias amigos ,pero lo que sucede es que existe una aplicación
"adquirida" que realiza el delete automáticamente.

Además , ¿el trrigger tipo INSTEAD OF DELETE reliza el delete o no realiza
el delete?

Gracias

"WBG" wrote in message
news:#
Saludos,

Tengo una tabla llamda tabla1 en mi BD de SQL Server 2000 que necesito
aplicarle una regla (condición) que no permita eliminar registros a menos
que exista en la Tabla2 o a menos que exista en la Tabla3.

Tabla1 , Tabla2 y Tabla3 tienen la misma esctructura.

Estructura

columna | tipo
=> loan_id | varchar(15)
name | varchar(20)
address | varchar(30)

¿Como puedo realizar esto?

Desde ya gracias


Wilfredo Burgos



Respuesta Responder a este mensaje
#5 Maximiliano D. A.
13/01/2004 - 16:34 | Informe spam
El trigger en lugar de, ejecuta el delete o no dependiendo como lo escribas.

Eso si, solo puedes tener un solo trigger "en lugar de" por tipo de
operacion (insert,delete,update)

Revisa la pagina de Miguel,

www.portalsql.com y encontraras lo q buscas.

Salu2

Maximiliano Damian Accotto

"WBG" escribió en el mensaje
news:
Muchas gracias amigos ,pero lo que sucede es que existe una aplicación
"adquirida" que realiza el delete automáticamente.

Además , ¿el trrigger tipo INSTEAD OF DELETE reliza el delete o no realiza
el delete?

Gracias

"WBG" wrote in message
news:#
> Saludos,
>
> Tengo una tabla llamda tabla1 en mi BD de SQL Server 2000 que necesito
> aplicarle una regla (condición) que no permita eliminar registros a


menos
> que exista en la Tabla2 o a menos que exista en la Tabla3.
>
> Tabla1 , Tabla2 y Tabla3 tienen la misma esctructura.
>
> Estructura
>
> columna | tipo
> => > loan_id | varchar(15)
> name | varchar(20)
> address | varchar(30)
>
> ¿Como puedo realizar esto?
>
> Desde ya gracias
>
>
> Wilfredo Burgos
>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida