Unicidad con dos campos

27/02/2008 - 16:17 por Oscar | Informe spam
Hola a todos,

tengo una tabla que guarda historicos por día de trabajo. Uno de los campos de la tabla es el número que identifica a cada elemento.

Se puede crear algo (un indice o clave) que no permita que se dupliquen el mismo número conjuntamente con la fecha?

La tabla tiene este aspecto:

CAMPO1 CAMPO2 CAMPO3 CAMPO4 CAMPO5
ID FECHA NUM_ID DESCR ID CLIENTE
1 1/2/08 1111 P1 1
2 1/2/08 2222 P2 1
3 2/2/08 1111 P1 1
4 2/2/08 2222 P2 1
5 3/2/08 1111 P1 1


quiero evitar que se produzca esta situación

CAMPO1 CAMPO2 CAMPO3 CAMPO4 CAMPO5
ID FECHA NUM_ID DESCR ID CLIENTE
1 1/2/08 1111 P1 1
2 1/2/08 2222 P2 1
3 2/2/08 1111 P1 1
4 2/2/08 2222 P2 1
5 3/2/08 1111 P1 1
6 3/2/08 1111 P1 1



A la base de datos acceden muchos clientes a la vez.

La secuencia que sigue la acutalización de datos es:
1.- borra los datos del día actual del cliente
2.- copia los datos del día actual del cliente

El número de registros diarios de cada cliente es de unos 200.


Nos hemos dado cuenta de que al entrar diferentes sesiones del mismo cliente, a veces se producen duplicaciones. Creemos que el problema se encuentra
en que al borrar los datos de una sesion, otra sesión esta grabando, por lo que la primera sesion duplica los datos al grabar en el paso 2.

Me gustaría asegurar que esto no pasa introduciendo esta unicidad en los campos fecha y num_ID (el num_ID es diferente para cada producto de cada
cliente).


espero que me haya explicado bien.


Un saludo.

Óscar.
 

Leer las respuestas

#1 Gux (MVP)
27/02/2008 - 19:25 | Informe spam
Si usted desea evitar datos duplicados en un conjunto de columnas, puede
crear un índice con CREATE UNIQUE INDEX.

Los detalles de sintaxis están en los Books Online (BOL) de SQL Server.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Oscar" wrote:

Hola a todos,

tengo una tabla que guarda historicos por día de trabajo. Uno de los campos de la tabla es el número que identifica a cada elemento.

Se puede crear algo (un indice o clave) que no permita que se dupliquen el mismo número conjuntamente con la fecha?

La tabla tiene este aspecto:

CAMPO1 CAMPO2 CAMPO3 CAMPO4 CAMPO5
ID FECHA NUM_ID DESCR ID CLIENTE
1 1/2/08 1111 P1 1
2 1/2/08 2222 P2 1
3 2/2/08 1111 P1 1
4 2/2/08 2222 P2 1
5 3/2/08 1111 P1 1


quiero evitar que se produzca esta situación

CAMPO1 CAMPO2 CAMPO3 CAMPO4 CAMPO5
ID FECHA NUM_ID DESCR ID CLIENTE
1 1/2/08 1111 P1 1
2 1/2/08 2222 P2 1
3 2/2/08 1111 P1 1
4 2/2/08 2222 P2 1
5 3/2/08 1111 P1 1
6 3/2/08 1111 P1 1



A la base de datos acceden muchos clientes a la vez.

La secuencia que sigue la acutalización de datos es:
1.- borra los datos del día actual del cliente
2.- copia los datos del día actual del cliente

El número de registros diarios de cada cliente es de unos 200.


Nos hemos dado cuenta de que al entrar diferentes sesiones del mismo cliente, a veces se producen duplicaciones. Creemos que el problema se encuentra
en que al borrar los datos de una sesion, otra sesión esta grabando, por lo que la primera sesion duplica los datos al grabar en el paso 2.

Me gustaría asegurar que esto no pasa introduciendo esta unicidad en los campos fecha y num_ID (el num_ID es diferente para cada producto de cada
cliente).


espero que me haya explicado bien.


Un saludo.

Óscar.

Preguntas similares