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