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

Duda al realizar delete en varias tablas

Estas en el tema de Duda al realizar delete en varias tablas en el foro de SQL Server en Foros del Web. Buenos dias He estado intentado realizar un delete en varias tablas, decibi probarlo transformandolo en select para revisar si el query estaba correcto, pero no ...
  #1 (permalink)  
Antiguo 26/09/2014, 08:48
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Duda al realizar delete en varias tablas

Buenos dias

He estado intentado realizar un delete en varias tablas, decibi probarlo transformandolo en select para revisar si el query estaba correcto, pero no trae informacion

Código SQL:
Ver original
  1. SELECT * FROM
  2. cliente cl,dir_hab dh,empleo_adicionales ea,ref_per rp,ref_ban rb,ref_com rc
  3. WHERE (cl.cedula = 11200300
  4. AND cl.id_cliente=dh.id_cliente AND cl.id_cliente=ea.id_cliente AND cl.id_cliente=rp.id_cliente)
  5. OR (cl.id_cliente=rb.id_cliente AND cl.id_cliente=rc.id_cliente);

Hay que aclarar que lo esta dentro del primer parentesis siempre va a traer informacion, y lo que esta despues del or, puede ser que exista informacion en la base de datos o no

He estado buscando informacion en internet, pero no he conseguido resolver la duda; no se si es algo que estoy haciendo mal, o por el contrario, es algo que estoy omitiendo

Muchas gracias
  #2 (permalink)  
Antiguo 26/09/2014, 09:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda al realizar delete en varias tablas

Simple, si NO TRAE INFORMACION, es porque los filtros (WHERE), no se están cumpliendo.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 26/09/2014, 09:12
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda al realizar delete en varias tablas

No puedes hacer delete de varias tablas en un solo query si es lo que quieres hacer........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 26/09/2014, 09:19
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Duda al realizar delete en varias tablas

Cita:
Iniciado por iislas Ver Mensaje
Simple, si NO TRAE INFORMACION, es porque los filtros (WHERE), no se están cumpliendo.
Exacto, por los momentos no trae informacion, pero habra momentos en que si habra informacion en esas tablas. Deberia haber una forma en que traiga la informacion, poniendo un ejemplo un or, algun tipoo de condicion o algo parecido

Cita:
Iniciado por Libras Ver Mensaje
No puedes hacer delete de varias tablas en un solo query si es lo que quieres hacer........ .
¿Por que no es posible hacerlo?

Muchas gracias
  #5 (permalink)  
Antiguo 26/09/2014, 09:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda al realizar delete en varias tablas

Porque los objetos DML solo pueden afectar una tabla a la vez no se puede afectar mas de una tabla, por ejemplo si hablamos de bloqueos a nivel tabla que pasa si haces un delete de 5 tablas y el tiempo que tarda ese delete es de 10 horas y si en una de esas tablas tienes FK?? Pues muchos procesos quedaria bloqueados esa es una de tantas razones de porque el DML solo puede afectar una tabla..............
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 26/09/2014, 09:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda al realizar delete en varias tablas

Curiosidad, @Libras, porque no he mirado aun el manual de referencia de SQL Server: ¿Es una restricción propia de este DBMS?
Lo pregunto porque en otros existe la posibilidad de realizar un DELETE multimple con uso de JOIN, aunque no es recomendable por porque el proceso de borrado puede ser inconsistente y caer en error. Específicamente, MySQL lo admite, pero el manual advierte del alto riesgo de fallos.
Pero como dije, aún no me puse a ver el tema en SQL Server ni otros.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/09/2014, 09:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda al realizar delete en varias tablas

No se si sea propio de sql o algun otro DBMS no pueda hacer eso, encontre la referencia aqui(para explicarla mejor) yo solo sabia que no se podia jejejeje
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 26/09/2014, 09:50
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Duda al realizar delete en varias tablas

Cita:
Iniciado por Libras Ver Mensaje
Porque los objetos DML solo pueden afectar una tabla a la vez no se puede afectar mas de una tabla, por ejemplo si hablamos de bloqueos a nivel tabla que pasa si haces un delete de 5 tablas y el tiempo que tarda ese delete es de 10 horas y si en una de esas tablas tienes FK?? Pues muchos procesos quedaria bloqueados esa es una de tantas razones de porque el DML solo puede afectar una tabla..............
Revisando en internet, DML incluye insert, update, delete y select... Segun dices, el DML solo afecta una tabla a la vez, pero es posible realizar una consulta (select) a diferentes tablas. ¿Podrias explicar mejor tu punto?

Muchas gracias
  #9 (permalink)  
Antiguo 26/09/2014, 09:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda al realizar delete en varias tablas

Funciones de modificacion de informacion (insert, update, delete) el select no lo consideraria DML porque no estas manipulando los datos solo los estas consultando.

mas referencias
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 26/09/2014, 10:02
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Duda al realizar delete en varias tablas

Cita:
Iniciado por Libras Ver Mensaje
Funciones de modificacion de informacion (insert, update, delete) el select no lo consideraria DML porque no estas manipulando los datos solo los estas consultando.

mas referencias
Bueno, tendre que hacerlo el delete en cada tabla de manera individual. Queria hacerlo el borrado de una sola vez, para ahorrarme recursos en mi programa, pero no me quedara de otra

Muchas gracias por tu tiempo
  #11 (permalink)  
Antiguo 26/09/2014, 10:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda al realizar delete en varias tablas

Ahorrarte recursos??? En que sentido???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 26/09/2014, 10:26
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Duda al realizar delete en varias tablas

Cita:
Iniciado por Libras Ver Mensaje
Ahorrarte recursos??? En que sentido???
Lo decia para no tener que declarar varias variables, cada una con un delete, y luego ejecutar una a una en mi programa... Pero como no trata de sql, estaria siendo algo off-topic
  #13 (permalink)  
Antiguo 26/09/2014, 10:54
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda al realizar delete en varias tablas

Creo que lo mencionaste muy claro, la solución es DELETE ON CASCADE
__________________
MCTS Isaias Islas
  #14 (permalink)  
Antiguo 26/09/2014, 12:25
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Duda al realizar delete en varias tablas

Cita:
Iniciado por iislas Ver Mensaje
Creo que lo mencionaste muy claro, la solución es DELETE ON CASCADE
En ese caso, haria falta modificar la tabla para que acepte esa opcion... Pero, como la base de datos la maneja otro departamento en mi trabajo, lo tendre que hacer como te comente

Muchisimas gracias por tu colaboracion

Etiquetas: delete, query, select, tabla, tablas
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 06:00.