Buenas, disculpen por lo elemental de la pregunta pero es que no se por
donde empezar.
Cual es la manera mas óptima de hacer restricciones de eliminación?
El caso es que intento impedir que se eliminen registros de una tabla padre
que contengan registros de la tabla hijo. Es un caso muy común pero no se
como hacerlo.
Ejemplo...
Que no se puedan eliminar registros de la tabla marcas si existen vehículos
relacionados...
/*************************************************************/
/** Create Table [Marcas] **/
/*************************************************************/
CREATE TABLE Marcas]
(
[ModuleID] [int] NOT NULL,
[ItemID] [int] NOT NULL IDENTITY(1, 1),
[CreatedByUserID] [int] NOT NULL,
[CreatedDate] [datetime] NOT NULL DEFAULT GETDATE(),
[UpdatedDate] [datetime] NOT NULL DEFAULT GETDATE(),
[Marca] [varchar] (50) NOT NULL
)
ALTER TABLE Marcas] ADD CONSTRAINT [PK_Marcas] PRIMARY KEY CLUSTERED
([ItemID])
CREATE NONCLUSTERED INDEX [IX_Marcas] ON Marcas] ([ModuleID])
/*************************************************************/
/** Create Table [Vehiculos] **/
/*************************************************************/
CREATE TABLE Vehiculos]
(
[ModuleID] [int] NOT NULL,
[ItemID] [int] NOT NULL IDENTITY(1, 1),
[CreatedByUserID] [int] NOT NULL,
[CreatedDate] [datetime] NOT NULL DEFAULT GETDATE(),
[UpdatedDate] [datetime] NOT NULL DEFAULT GETDATE(),
[MarcaID] [int] NOT NULL,
[ClienteID] [int] NOT NULL,
[UltimoServicioID] [int] NOT NULL,
[Vehiculo] [varchar] (100) NOT NULL,
[Color] [varchar] (50) NOT NULL,
[Dominio] [char] (6) NOT NULL,
[Segmento] [varchar] (50) NOT NULL,
[Combustible] [varchar] (50) NOT NULL,
[Modelo] [int] NOT NULL,
[Kmts] [int] NOT NULL,
[ProximoServicio] [int] NOT NULL,
[Activo] [bit] DEFAULT 1 NOT NULL,
[memo] [varchar] (300) NOT NULL
)
ALTER TABLE Vehiculos] ADD CONSTRAINT [PK_Vehiculos] PRIMARY KEY CLUSTERED
([ItemID])
CREATE NONCLUSTERED INDEX [IX_Vehiculos] ON Vehiculos] ([ModuleID])
Leer las respuestas