Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Bulk, Sin repetir datos

Estas en el tema de Bulk, Sin repetir datos en el foro de SQL Server en Foros del Web. Se tiene la siguiente estructura en un archivo plano llamado REPUTADIAS.txt: |01DD06A09005|201207|061|469|20130109 |01DD06A09005|201208|022|003|20130209 |01DD06A09005|201209|063|467|20130309 |01DD06A09005|201210|001|002|20130409 |01DD06A09005|201211|059|471|20130509 |01DD06A09005|201212|024|002|20130609 |01DD06A09005|201301|059|471|20130109 |01DD06A09005|201302|021|004|20130209 Con un JOB en SQL ejecuto ...
  #1 (permalink)  
Antiguo 13/08/2013, 12:49
 
Fecha de Ingreso: agosto-2013
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Bulk, Sin repetir datos

Se tiene la siguiente estructura en un archivo plano llamado REPUTADIAS.txt:

|01DD06A09005|201207|061|469|20130109
|01DD06A09005|201208|022|003|20130209
|01DD06A09005|201209|063|467|20130309
|01DD06A09005|201210|001|002|20130409
|01DD06A09005|201211|059|471|20130509
|01DD06A09005|201212|024|002|20130609
|01DD06A09005|201301|059|471|20130109
|01DD06A09005|201302|021|004|20130209


Con un JOB en SQL ejecuto la siguiente instrucción cada noche:


USE Prueba
BULK

INSERT ReputasDias
FROM 'c:\InformeVentas\REPUTASDIAS.txt'--Ruta del archivo
WITH(
FIELDTERMINATOR = '|', --separa campos
ROWTERMINATOR = '\n'
) --separa filas

GO

La pregunta es, ¿Cómo puedo hacerle para que no se dupliquen registros?suponiendo que la validacion se haria de los siguientes campos..

|01DD06A09005|201207|061|469|20130809
  #2 (permalink)  
Antiguo 13/08/2013, 13:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Bulk, Sin repetir datos

puedes cargarlo en una tabla temporal y despues cargarlo en una nueva tabla donde revises la validacion o de forma sencilla poner una llave primaria con los 2 campos que no quieres que se repitan :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 13/08/2013, 14:15
 
Fecha de Ingreso: agosto-2013
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Bulk, Sin repetir datos

Gracias por responder tan rápido :).

Me gustaria hacerlo por el lado de la tabla temporal, supongo que tendría que hacer un Job que se ejecute cuando se termine de ejecutar el job que realiza el proceso del Bulk..

Tienes un codigo de ejemplo?.

El proceso que tengo pensado es el siguiente:

Por cada registro que haya en la Tabla Temporal, con la siguiente estructura

|01DD06A09005|201207|061|469|20130809
|01DD06A09005|201208|022|003|20130809
|01DD06A09005|201209|063|467|20130809
|01DD06A09005|201210|001|002|20130809
|01DD06A09005|201211|059|471|20130809
|01DD06A09005|201212|024|002|20130809
|01DD06A09005|201301|059|471|20130809
|01DD06A09005|201302|021|004|20130809
|01DD06A09005|201302|021|004|20130909

Revisar si en la Tabla Padre (ORIGINAL) exista un registro identico.
Si no existe, que haga el Insert, de lo contrario no haga nada.
  #4 (permalink)  
Antiguo 13/08/2013, 14:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Bulk, Sin repetir datos

que version de sql server manejas?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 13/08/2013, 15:39
 
Fecha de Ingreso: agosto-2013
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Bulk, Sin repetir datos

SQL Server 2008

Etiquetas: bulk, insert, registro, repetir, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:49.