Hola
Primero que nada, muchas gracias por responder y ayudarme.
Intente hacerlo como me dijiste pero no puedo eliminar la cuenta, debe ser que estoy haciendo algo mal o tengo mal el diseño de tablas.
Voy a ver si puedo explicarme mejor.
Tengo las siguientes tablas:
Personas (
idCédula PK,nombre,direccion)
Clientes (
idCédula FK)
Cuentas(
idCuenta PK identity,saldo)
Titular (
idCédula Fk, Cuenta identity FK)
Lo que yo quiero hacer es un procedimiento almacenado para eliminar un cliente y a su vez me elimine su cuenta.
Estoy intentando hacerlo de ésta manera:
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 clientes
where ci=@ci;
SET @Error=@@ERROR;
delete Titular
where ci=@ci;
set @Error=@@ERROR;
DELETE cuentas
WHERE cuenta = (SELECT cuenta FROM titular WHERE ci = @ci)
SET @Error=@@ERROR;
delete Personas
WHERE ci = @ci;
SET @Error=@@ERROR;
IF(@Error=0)
BEGIN
COMMIT TRAN;
RETURN 1;
END
ELSE
BEGIN
ROLLBACK TRAN;
RETURN 0;
END
END
END
go
El tema es que me elimina el cliente de todas las tablas menos de la tabla cuentas
es decir, no puedo borrar la cuenta que le corresponde a ese cliente.
Bueno, de nuevo muchas gracias por ayudarme y un saludo