REVISIÓN: Error de paso de trabajo si primero INSERT del proceso detecta un error de mensaje 3604

Seleccione idioma Seleccione idioma
Id. de artículo: 295032 - Ver los productos a los que se aplica este artículo
Nº DE ERROR: 351328 (SHILOH_BUGS)
Nº DE ERROR: 100729 (SQLBUG_70)
Expandir todo | Contraer todo

En esta página

Síntomas

Si un trabajo contiene una única instrucción INSERT en una tabla que tiene un índice único con la cláusula IGNORE_DUP_KEY y INSERT infringe la propiedad unicidad del índice, la fila correspondiente no está insertada en la tabla. El paso de trabajo produce un error y vea el mensaje siguiente en el historial del paso de trabajo:
Se omitió la clave duplicada. [SQLSTATE 23000] (Mensaje 3604). Error en el paso.
Dado que la tabla tiene un INDEX UNIQUE con IGNORE_DUP_KEY, debe pasar por alto la instrucción INSERT y debería realizarse correctamente el paso.

Solución

Para resolver este problema, consiga el Service Pack más reciente para SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211INF: Cómo obtener el Service Pack más reciente de SQL Server 2000

Solución

Si coloca una instrucción SELECT "ficticia" que siempre se ejecuta correctamente (como SELECT 1) justo antes de la instrucción INSERT que se produce el error 3604, el paso se realiza correctamente. Esto se muestra en la sección "Más información".

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo. Este problema se corrigió por primera vez en SQL Server 2000 Service Pack 1.

Más información

Pasos para reproducir este comportamiento

  1. Crear una tabla de prueba en la base de datos pubs y ejecute la siguiente secuencia de comandos para insertar una fila:
    USE pubs
    CREATE TABLE test(i int)
    CREATE UNIQUE INDEX uniq_t1_i on test(i) with IGNORE_DUP_KEY
    INSERT INTO test VALUES(1)
    					
  2. Crear un trabajo T-SQL en la base de datos de pubs para insertar una fila en la tabla de prueba :
    INSERT INTO pubs..test values(1)
    					
  3. Ejecutar el trabajo. Se produce un error en la trabajo y el trabajo paso historial muestra el error enumerado en la sección de "Síntomas".
  4. Tenga en cuenta que si agregamos una instrucción correcta después de INSERT que encuentra un error de 3604:
    INSERT INTO pubs..test values(1)
    INSERT INTO pubs..test values(2)
    					
    el paso nuevo se produce el siguiente error:
    Se omitió la clave duplicada. [SQLSTATE 23000] (Mensaje 3604) La instrucción asociada no está preparada [SQLSTATE HY007] (error 0). Error en el paso.
  5. Sin embargo, si se agrega una instrucción correcta que tiene produce antes de INSERT se produce el error 3604:
    insert pubs..t1 values(3)
    insert pubs..t1 values(1)
    					
    el paso termina correctamente y se vea el siguiente mensaje:
    Se omitió la clave duplicada. [SQLSTATE 23000] (Mensaje 3604). El paso concluyó correctamente.

Propiedades

Id. de artículo: 295032 - Última revisión: martes, 28 de octubre de 2003 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palabras clave: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB295032 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 295032

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com