Recuperar Error instrucción INSERT masiva

20/10/2009 - 13:44 por José Antonio Muñoz | Informe spam
Hola al grupo,

tengo una tabla que tiene definido un indice único (indice1) con la opción
IGNORE_DUP_KEY, de manera que al realizar la instrucción "INSERT Tabla1
SELECT * FROM Tabla2", se insertan todos los registros de Tabla2 en Tabla1
descartando los valores duplicados según el indice1 sin provocar ningún
error. ¿Como puedo recuperar cada uno de los errores de índice duplicado?
¿existe algún archivo log de Sql Server donde se registran este tipo de
errores? ¿a través de una traza puedo recuperar errores de este tipo?

saludos,
José Antonio Muñoz.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
20/10/2009 - 14:50 | Informe spam
No, la opción IGNORE_DUP_KEY sólo muestra el mensaje de advertencia de que
hay filas que se han obviado, no cuáles. Para saberlo lo único que puedes
hacer es una consulta antes para saber cuáles son las filas que va a
descartar.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:
Hola al grupo,

tengo una tabla que tiene definido un indice único (indice1) con la opción
IGNORE_DUP_KEY, de manera que al realizar la instrucción "INSERT Tabla1
SELECT * FROM Tabla2", se insertan todos los registros de Tabla2 en Tabla1
descartando los valores duplicados según el indice1 sin provocar ningún
error. ¿Como puedo recuperar cada uno de los errores de índice duplicado?
¿existe algún archivo log de Sql Server donde se registran este tipo de
errores? ¿a través de una traza puedo recuperar errores de este tipo?

saludos,
José Antonio Muñoz.

Respuesta Responder a este mensaje
#2 Ruben Garrigos
20/10/2009 - 14:53 | Informe spam
Hola José,

Y digo yo... ¿no sería más fácil que eliminaras los duplicados directamente
en tu consulta SELECT? No soy demasiado partidario del abuso del distinct
pero creo que si no puedes controlar la "calidad" de la fuente de datos creo
que es mejor alternativa que la opción de IGNORE_DUP_KEY.

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola al grupo,

tengo una tabla que tiene definido un indice único (indice1) con la
opción IGNORE_DUP_KEY, de manera que al realizar la instrucción
"INSERT Tabla1 SELECT * FROM Tabla2", se insertan todos los registros
de Tabla2 en Tabla1 descartando los valores duplicados según el
indice1 sin provocar ningún error. ¿Como puedo recuperar cada uno de
los errores de índice duplicado? ¿existe algún archivo log de Sql
Server donde se registran este tipo de errores? ¿a través de una traza
puedo recuperar errores de este tipo?

saludos,
José Antonio Muñoz
Respuesta Responder a este mensaje
#3 José Antonio Muñoz
21/10/2009 - 08:53 | Informe spam
Gracias por vuestra colaboración,

con respecto a Ruben Garrigos, he utilizado IGNORE_DUP_KEY por que es
posible agregar de nuevo a la tabla más registros en grupos y en ese caso no
sé como controlar los que están repetidos con respecto a los que existen en
la tabla destino.

saludos,
José Antonio Muñoz

"Ruben Garrigos" escribió en el mensaje de
noticias news:
Hola José,

Y digo yo... ¿no sería más fácil que eliminaras los duplicados
directamente en tu consulta SELECT? No soy demasiado partidario del abuso
del distinct pero creo que si no puedes controlar la "calidad" de la
fuente de datos creo que es mejor alternativa que la opción de
IGNORE_DUP_KEY.

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola al grupo,

tengo una tabla que tiene definido un indice único (indice1) con la
opción IGNORE_DUP_KEY, de manera que al realizar la instrucción
"INSERT Tabla1 SELECT * FROM Tabla2", se insertan todos los registros
de Tabla2 en Tabla1 descartando los valores duplicados según el
indice1 sin provocar ningún error. ¿Como puedo recuperar cada uno de
los errores de índice duplicado? ¿existe algún archivo log de Sql
Server donde se registran este tipo de errores? ¿a través de una traza
puedo recuperar errores de este tipo?

saludos,
José Antonio Muñoz.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida