Ver Mensaje Individual
  #8 (permalink)  
Antiguo 11/05/2017, 12:31
uagrm
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Cómo puedo comprobar si hay duplicados antes de insertarlos

Buenas tardes, disculpa, si en la tabla #Aux1 ya se insertó Pedro Caceres, al ejecutar la query vuelve a repetir este dato, cómo se puede solucionar esto.

Código SQL:
Ver original
  1. CREATE TABLE #Aux
  2.     (
  3.         Id       INT IDENTITY(1,1)
  4.        ,Nombre   VARCHAR(50)
  5.        ,Apellido VARCHAR(50)
  6.        ,Dni      INT
  7.     )
  8.    
  9.     INSERT INTO #Aux VALUES ('Juan', 'Claros', 12345);
  10.     INSERT INTO #Aux VALUES ('Pedro', 'Caceres', 82315);
  11.     INSERT INTO #Aux VALUES ('Gabriela', 'Romero', 73345);
  12.     INSERT INTO #Aux VALUES ('Juan', 'Claros', 12345);
  13.     INSERT INTO #Aux VALUES ('Alejandro', 'Gonzales', 80315);
  14.     INSERT INTO #Aux VALUES ('Pedro', 'Caceres', 82315);
  15.    
  16.        
  17.     CREATE TABLE #Aux1
  18.     (
  19.         Id       INT IDENTITY(1,1)
  20.        ,Nombre   VARCHAR(50)
  21.        ,Apellido VARCHAR(50)
  22.        ,Dni      INT
  23.     )
  24.  
  25.     /**/
  26.  
  27.     INSERT INTO #Aux1 VALUES ('Pedro', 'Caceres', 82315);
  28.  
  29.         /**/
  30.  
  31.     INSERT INTO #Aux1          
  32.            SELECT nombre
  33.                  ,apellido
  34.                  ,dni
  35.                  FROM(        
  36.                      SELECT A.Nombre
  37.                            ,A.Apellido
  38.                            ,A.Dni
  39.                            ,ROW_NUMBER() OVER(partition BY nombre
  40.                                                           ,apellido
  41.                                                           ,dni
  42.                                                           ORDER BY nombre, apellido, dni) AS rn
  43.                        FROM #Aux A
  44.               ) AS t1 WHERE rn=1
  45.      
  46.                    
  47.     SELECT * FROM #Aux1

Saludos,