Hola
He intentado como tú dices Andres95 pero no me funciono (no me elimina de ninguna tabla). Pero he probado así:
Código:
CREATE PROCEDURE EliminarClientes @Ci int AS
BEGIN
DECLARE @Error int
if (NOT EXISTS (SELECT ci FROM clientes WHERE ci=@ci))
BEGIN
RETURN 0;
END
ELSE
BEGIN
BEGIN TRAN
DELETE cuentas
WHERE cuenta = (SELECT cuenta FROM titular WHERE ci = @ci)
SET @Error=@@ERROR;
delete titular
where ci=@ci;
set @Error=@@ERROR+@error;
delete clientes
where ci=@ci;
SET @Error=@@ERROR+@error;
delete Personas
WHERE ci = @ci;
SET @Error=@@ERROR+@error;
IF(@Error=0)
BEGIN
COMMIT TRAN;
RETURN 1;
END
ELSE
BEGIN
ROLLBACK TRAN;
RETURN 0;
END
END
END
go
y.. si me ha funcionado
, me elimina de todas las tablas !!
Que les parece el codigo? podría optimizarlo?
El gran problema (creo yo) es que tenía la tabla titular de la siguiente manera:
create table Titular (
ci int not null primary key ,
cuenta int not null identity (1000,1),
foreign key (ci) references Personas (ci),
foreign key (cuenta) references Cuentas (cuenta)
al borrar la última linea me funciono!!
Bueno Muchas gracias a los dos por ayudarme
, siempre es bueno contar con gente como ustedes !!!
Saludos