Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/03/2012, 20:01
tattojk
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 10 meses
Puntos: 2
Pregunta Problema con indice

Cordial saludo.

Tengo el siguiente problema:

En la empresa cuando se implemento el software solo existian areas y funciona a las maravillas PERO se les dio por crear secciones de area y ahi me complica el asunto porque ese campo no es obligatorio. Aqui les muestro el scripto de la tabla:

Cita:
USE [talento]
GO

/****** Object: Table [dbo].[th_Colaboradores] Script Date: 03/25/2012 20:54:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[th_Colaboradores](
[colCeduCola] [decimal](14, 0) NOT NULL,
[colSecuArea] [int] NOT NULL,
[colConsSeccion] [int] NULL,
[colEstado] [char](1) NOT NULL,
[colUsuario] [char](10) NOT NULL,
[colFecha] [smalldatetime] NOT NULL,
CONSTRAINT [PK_th_Colaboradores] PRIMARY KEY CLUSTERED
(
[colCeduCola] ASC,
[colSecuArea] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Cedula del Colaborador' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'th_Colaboradore s', @level2type=N'COLUMN',@level2name=N'colCeduCola'
GO

ALTER TABLE [dbo].[th_Colaboradores] WITH NOCHECK ADD CONSTRAINT [FK_th_Colaboradores_th_Areas] FOREIGN KEY([colSecuArea])
REFERENCES [dbo].[th_Areas] ([arSecuencial])
GO

ALTER TABLE [dbo].[th_Colaboradores] CHECK CONSTRAINT [FK_th_Colaboradores_th_Areas]
GO

ALTER TABLE [dbo].[th_Colaboradores] WITH CHECK ADD CONSTRAINT [th_Colaboradores_fk] FOREIGN KEY([colConsSeccion])
REFERENCES [dbo].[th_Secciones] ([secConsecutivo])
GO

ALTER TABLE [dbo].[th_Colaboradores] CHECK CONSTRAINT [th_Colaboradores_fk]
GO
como pueden ver las llaves primarias son el numero de cedula y area, el problema es con el campo colConsSeccion; es decir que si un funcionario cambia a una seccion del area sale error por la llave primaria. Ejemplo: Pepito perez cedula: 123 pertenece al area financiera asi que ya esta grabado ese registro pero a partir de mañana entra a la seccion de contabilidad del area financiera y pos obvio no me lo deja grabar por la llave primaria......

He intentado con indices pero tampoco me lo deja guardar :(

Agradezco la ayuda y sugerencias que me puedan brindar.