Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/02/2008, 21:12
santino
 
Fecha de Ingreso: septiembre-2007
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Duda con Delete

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