Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/10/2011, 20:27
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 2 meses
Puntos: 85
Respuesta: Borrar filas de 3 tablas

Como se dijo, lo puedes resolver con las foreign key, en general es la mejor opción, ya que es rápido y reduce el código (un solo delete borra registros de tres tablas), la desventaja es que una foreign key se puede deshabilitar lo que provoca que no se borren los registros hijos, esto no es algo grave pero parece una falta de control sobre los datos por parte de la aplicación.

Código:
create table Encuestas(
 Id numeric(8) not null primary key,
 Titulo varchar(10)
)
go

create table Encuestas_opciones(
 Id numeric(8) not null primary key,
 IdEncuesta numeric(8),
 foreign key (IdEncuesta) references Encuestas 
 on delete cascade
)
go

create table Encuestas_votos (
 Id numeric(8) not null primary key,
 IdEncuesta numeric(8),
 foreign key (IdEncuesta) references Encuestas 
 on delete cascade
)
go

delete from Encuestas where id = 1
go
Saludos