FIX: Error message when you estimate the compression on a table in SQL Server 2008: "Subquery returned more than 1 value"

Article translations Article translations
Article ID: 956031 - View products that this article applies to.
Bug #: 50003626 (SQL Hotfix)
Microsoft distributes Microsoft SQL Server 2008 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release.
Expand all | Collapse all

On This Page

SYMPTOMS

When you use the sp_estimate_data_compression_savings stored procedure on a table that has both a nonclustered primary key and one or more nonclustered indexes in Microsoft SQL Server 2008, you may receive the following error message:
Msg 512, Level 16, State 1, Procedure sp_estimate_data_compression_savings, Line 251
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Although you receive this error message, the result is returned. However, the compression estimations for some nonclustered indexes are incorrect.

This problem occurs whether or not a clustered index exists.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for SQL Server 2008. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
968382 How to obtain the latest service pack for SQL Server 2008

Cumulative update information

The fix for this issue was first released in Cumulative Update 2. For more information about how to obtain this cumulative update package for SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:
958186 Cumulative update package 2 for SQL Server 2008
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
956909 The SQL Server 2008 builds that were released after SQL Server 2008 was released

WORKAROUND

To work around this problem, specify the @index_id parameter when you run the sp_estimate_data_compression_savings stored procedure. You must run the stored procedure one time for each index for which you want to estimate.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in SQL Server 2008 Service Pack 1.

MORE INFORMATION

The sp_estimate_data_compression_savings stored procedure is used to return the current size of tables. The sp_estimate_data_compression_savings stored procedure also estimates the table size for the requested compression state.

Steps to reproduce the problem

  1. Start SQL Server Management Studio, and then connect to an instance of SQL Server 2008.
  2. Create a new query, and then run the following statements.
    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'
    
For more information about what files are changed, and for information about any prerequisites to apply the cumulative update package that contains the hotfix that is described in this Microsoft Knowledge Base article, click the following article number to view the article in the Microsoft Knowledge Base:
958186 Cumulative update package 2 for SQL Server 2008

REFERENCES

For more information about the list of builds that are available after the release of SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:
956909 The SQL Server 2008 builds that were released after SQL Server 2008 was released
For more information about the Incremental Servicing Model for SQL Server, click the following article number to view the article in the Microsoft Knowledge Base:
935897 An Incremental Servicing Model is available from the SQL Server team to deliver hotfixes for reported problems
For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:
822499 New naming schema for Microsoft SQL Server software update packages
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates

Properties

Article ID: 956031 - Last Review: April 8, 2009 - Revision: 3.0
APPLIES TO
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
Keywords: 
sql2008relnotedatabaseengine sql2008relnote kbbug kbqfe kbfix kbexpertiseadvanced kbprb KB956031

Give Feedback

 

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