Obtener registros repetidos

17/09/2003 - 18:24 por Juanma de Luelmo | Informe spam
Tengo una tabla (con muchos campos) en la que varias aplicaciones remotas
pueden introducir registros. En esta tabla no pueden existir dos registros
iguales, salvo el Identificador que es de tipo "uniqueidentifier". ¿Como
puedo controlar que no se introduzcan registros exactamente iguales?



He pensado en un Desencadenador que cada vez que se inserta un registro
compruebe si existe uno igual y en ese caso descarte la inserción. Si la
solución es esta ¿cómo lo hago para comparar campo a campo?



¿Podéis darme una solución? ¿o un camino a seguir?



Gracias por vuestra atención
 

Leer las respuestas

#1 Isaías
18/09/2003 - 03:27 | Informe spam
Hola

Para "impedir" que se introduzcan 2 registros iguales, va
en conjunto con la declaracion de una PK y definir las
llaves UNICAS.

Ahora bien, suponiendo que fueran 30 (por decir un numero)
columnas y se quisiera "impedir" la introduccion de un
registro EXACTAMENTE IGUAL a esas 30 columnas.

Haciendolo por un procedimiento:

CREATE PROCEDURE pr_ImpedirX30Cols
@col1 int,
@col2 char(30)
@colx..
@col30 int
AS

IF EXISTS(SELECT COL1 FROM MYTABLA WHERE
@COL1 = COL1 AND
@COL2 = COL2 AND
@COL
@COL30 = COL30)
BEGIN
SELECT '* ERROR *, REGISTRO REPETIDO'
RETURN(-1)
END

.COMPLEMENTO DEL CODIGO SQL.

Pero viendolo bien, deberia "analizar" muy bien su
registro y definir un PK o una llave UNICA.

Saludos.

Preguntas similares