REVISIÓN: Resultados incorrectos o infracción de restricción al ejecutar una instrucción SELECT o DML que utiliza la función row_number y un plan de ejecución en paralelo en SQL Server 2008

Seleccione idioma Seleccione idioma
Id. de artículo: 2589980 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo
Microsoft distribuye correcciones de Microsoft SQL Server 2008 como un archivo descargable. Debido a que las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyen con la anterior de SQL Server 2008.

Síntomas

Tenga en cuenta la situación siguiente:
  • Ejecutar una consulta paralela que usa el ROW_NUMBER función Microsoft SQL Server de 2008.
  • Intente ejecutar la consulta utilizando una subconsulta que está dentro de un SELECCIONE instrucción o una instrucción de lenguaje de manipulación de datos (DML).
En este escenario, se encuentra con uno de los problemas siguientes:
  • Recibir resultados incorrectos si se ejecuta la consulta dentro de laSELECCIONE instrucción muchas veces.
  • La tabla podría contener datos incorrectos si la consulta se ejecuta dentro de una instrucción DML. Si la tabla tiene restricciones, la instrucción puede fallar con una infracción de restricción.

    Por ejemplo, un INSERTAR instrucción puede fallar y se produce un error de infracción de clave principal si la tabla tiene una clave principal.


Nota Estos problemas pueden producirse en una de las siguientes situaciones:
  • Establece el MAXDOP opción de sugerencia de consulta para un valor mayor que 2.
  • Establece el Max Degree of Parallelism opción a un valor mayor que 2 en la configuración del servidor.

Solución

Para resolver este problema, obtenga el service pack más reciente de SQL Server de 2008. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

968382 Cómo obtener el service pack más reciente de SQL Server 2008

Solución

Para evitar este problema, utilice uno de los métodos siguientes:
  • Habilitar el indicador de traza 4134 si ha aplicado una de las siguientes actualizaciones:
    • Paquete de actualización acumulativa 6 para SQL Server 2008 o un paquete de actualización acumulativa de más adelante para SQL Server 2008
    • Paquete de actualización acumulativa 2 para SQL Server 2008 Service Pack 1 (SP1) o un paquete de actualización acumulativa de más adelante para SQL Server 2008 SP1


    Para obtener más información acerca de cómo habilitar los indicadores de traza, visite el siguiente sitio Web MSDN:
    Cómo habilitar los indicadores de traza
  • Hacer referencia a la sección "Solución" en el artículo de Microsoft Knowledge Base 970198.

    Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    970198 REVISIÓN: Recibe un resultado incorrecto cuando ejecuta una consulta que utiliza la función row_number en SQL Server 2008

Propiedades

Id. de artículo: 2589980 - Última revisión: lunes, 22 de agosto de 2011 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Service Pack 1
  • Microsoft SQL Server 2008 Service Pack 2
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2589980 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): 2589980

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