Forums Últimos mensajes - Powered by IBM
 

Cual es el camino mas óptimo?

27/07/2007 - 18:09 por Daniel | Informe spam
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

#1 Carolina Rodriguez
27/07/2007 - 19:24 | Informe spam
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.




La manera mas optima son las claves foraneas o relaciones de integridad.

Preguntas similares