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