REVISIÓN: Mensaje de error al calcular la compresión en una tabla de SQL Server 2008: "Subconsulta devolvió el valor de más de 1"

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

En esta página

Síntomas

Cuando utilice el procedimiento sp_estimate_data_compression_savings almacenados en una tabla que tiene una clave principal no agrupada y uno o más índices no agrupados en Microsoft SQL Server 2008, puede recibir el siguiente mensaje de error:
Msg 512, nivel 16, estado 1, procedimiento sp_estimate_data_compression_savings, 251 de línea
Subconsulta devuelve más de 1 valor. No se permite cuando la subconsulta sigue =,! =, <, < =, >, > = o cuando se utiliza la subconsulta como una expresión.
Aunque reciba este mensaje de error, se devuelve el resultado. Sin embargo, las estimaciones de compresión para algunos índices no agrupados son incorrectas.

Este problema se produce independientemente de si existe un índice agrupado o no.

Solución

Información de Service Pack

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

Información de actualización acumulativa

La corrección para este problema se publicó por primera vez en actualización acumulativa 2. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
958186Paquete de actualización acumulativa 2 para SQL Server 2008
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas con la anterior de SQL Server 2008. Recomendamos que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008

Solución

Para evitar este problema, especifique el @ IdÍndice parámetro cuando ejecuta el sp_estimate_data_compression_savings procedimiento almacenado. Debe ejecutar el procedimiento almacenado una vez para cada índice para el que desea calcular.

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:". Este problema se corrigió por primera vez en el Service Pack 1 de SQL Server 2008.

Más información

El procedimiento sp_estimate_data_compression_savings almacenada se utiliza para devolver el tamaño actual de las tablas. El procedimiento sp_estimate_data_compression_savings almacenados también estima el tamaño de tabla para el estado de compresión solicitado.

Pasos para reproducir el problema

  1. Inicie SQL Server Management Studio y, a continuación, conectarse a una instancia de SQL Server 2008.
  2. Cree una nueva consulta y ejecute las instrucciones siguientes.
    CREATE DATABASE TEST
    GO
    USE Test
    GO
    
    CREATE TABLE REPRO(i int primary key nonclustered, a int)
    GO
    
    CREATE NONCLUSTERED INDEX NONCLUSTERED_REPRO ON REPRO(a)
    GO
    
    EXEC SP_ESTIMATE_DATA_COMPRESSION_SAVINGS @schema_name = 'dbo', @object_name = 'repro', @index_id = NULL, @partition_number = NULL, @data_compression = 'PAGE'
    
Para obtener más información acerca de qué archivos se ha cambiado y para información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
958186Paquete de actualización acumulativa 2 para SQL Server 2008

Referencias

Para obtener más información acerca de la lista de generaciones que están disponibles después del lanzamiento de SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008
Para obtener más información acerca del modelo incremental de servicio para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897Un modelo incremental de servicio está disponible desde el equipo de SQL Server para entregar revisiones para problemas detectados
Para obtener más información sobre el esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499Nuevo esquema de nomenclatura para los paquetes de actualización del software de Microsoft SQL Server
Para obtener más información acerca de la terminología relativa de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 956031 - Última revisión: miércoles, 08 de abril de 2009 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
Palabras clave: 
kbmt sql2008relnotedatabaseengine sql2008relnote kbbug kbqfe kbfix kbexpertiseadvanced kbprb KB956031 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): 956031

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