Delete records with related tables

0

I have 3 auto boards, AUTO TYPE AND I ASK what I'm trying to do is that when I delete a car type I get rid of the car related to that type of car and the requests made with this type of car are my tables

CREATE TABLE [dbo].[Arriendo_Autos] (
    [Patente] nchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [Nombre_Auto] nvarchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [cTipo] smallint NOT NULL,
    [cMarca] smallint NOT NULL,
    [Año] datetime NULL,
    [Modelo_Auto] varchar(16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [Asientos] smallint NULL,
    [Combustible] varchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [Tarifa_Diaria] money NOT NULL,
    PRIMARY KEY CLUSTERED ([Patente]),
    CONSTRAINT [Arriendo_Autos_Marca_fk] FOREIGN KEY ([cMarca]) 
    REFERENCES [dbo].[Arriendo_Marcas] ([cMarca]) 
    ON UPDATE NO ACTION
    ON DELETE NO ACTION,
    CONSTRAINT [Arriendo_Autos_Tipo_fk] FOREIGN KEY ([cTipo]) 
    REFERENCES [dbo].[Arriendo_TipoAuto] ([cTipo]) 
    ON UPDATE NO ACTION
    ON DELETE NO ACTION
)
ON [PRIMARY]
GO



CREATE TABLE [dbo].[Arriendo_TipoAuto] (
    [cTipo] smallint IDENTITY(1, 1) NOT NULL,
    [Tipo_Auto] varchar(25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    CONSTRAINT [Arriendo_TipoAuto_pk] PRIMARY KEY CLUSTERED ([cTipo])
)
ON [PRIMARY]
GO

CREATE TABLE [dbo].[Arriendo_Solicitud] (
    [cSolicitud] int IDENTITY(1, 1) NOT NULL,
    [Patente] nchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [fInicio] datetime NOT NULL,
    [fTermino] datetime NOT NULL,
    [Rut] varchar(11) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [cFPago] smallint NOT NULL,
    PRIMARY KEY CLUSTERED ([cSolicitud]),
    CONSTRAINT [Arriendo_Solicitud_Autos_fk] FOREIGN KEY ([Patente]) 
    REFERENCES [dbo].[Arriendo_Autos] ([Patente]) 
    ON UPDATE NO ACTION
    ON DELETE NO ACTION,
    CONSTRAINT [Arriendo_Solicitud_FPago_fk] FOREIGN KEY ([cFPago]) 
    REFERENCES [dbo].[Arriendo_FormaPago] ([cFPago]) 
    ON UPDATE NO ACTION
    ON DELETE NO ACTION,
    CONSTRAINT [Arriendo_Solicitud_Rut_fk] FOREIGN KEY ([Rut]) 
    REFERENCES [dbo].[Arriendo_Clientes] ([Rut]) 
    ON UPDATE NO ACTION
    ON DELETE NO ACTION
)
ON [PRIMARY]
GO

I tried to create a procedure with INNER JOIN and IF NOT EXIST but it does not throw me error :( Syntax procedure

CREATE PROCEDURE SP_Arriendo_TipoAuto_DU @cTipo SMALLINT 
AS 

DECLARE @salida nvarchar(30)

BEGIN
    If NOT EXISTS (
        SELECT Patente
        FROM dbo.Arriendo_Autos WHERE cTipo=@cTipo
    )

    If NOT EXISTS( 
        SELECT Patente
        FROM dbo.Arriendo_Solicitud WHERE cTipo=@cTipo
    )
END

BEGIN
    DELETE T
    FROM Arriendo_TipoAuto T 
    INNER JOIN Arriendo_Autos A
        ON T.cTipo=A.cMarca
    INNER JOIN Arriendo_Solicitud S
        ON A.Patente= S.Patente
    WHERE A.cTipo=@cTipo

    SET @salida='Registros Eliminados' 
END

    
asked by Daniela 05.11.2018 в 19:25
source

0 answers