Microsoft KB Archive/934459

= FIX: The Check Database Integrity task and the Execute T-SQL Statement task in a maintenance plan may lose database context in certain circumstances in SQL Server 2005 builds 3150 through 3158 =

Article ID: 934459

Article Last Modified on 11/20/2007

-

APPLIES TO


 * Microsoft SQL Server 2005 Developer Edition
 * Microsoft SQL Server 2005 Enterprise Edition
 * Microsoft SQL Server 2005 Standard Edition
 * Microsoft SQL Server 2005 Standard X64 Edition
 * Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems
 * Microsoft SQL Server 2005 Enterprise X64 Edition
 * Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems

-



SYMPTOMS
In Microsoft SQL Server 2005 Service Pack 2 (SP2), the following tasks in a maintenance plan may lose database context in certain circumstances:
 * Check Database Integrity
 * Execute T-SQL Statement

For example, if a Check Database Integrity task is configured to check integrity on multiple databases, the task repeatedly checks the default database.

For the Execute T-SQL Statement task, this problem occurs if the following conditions are true:
 * The Execute T-SQL Statement task contains multiple batches.
 * The batches are separated by the GO statement.
 * No batches use the USE statement to specify the database.
 * The statements in each batch do not contain the database name.

In this scenario, those statements in the second batch and in succeeding batches will be executed against the default database.

Note You can confirm that this problem has occurred by using SQL Server Profiler. When you trace the maintenance plan execution, see the Database column in SQL Server Profiler.



RESOLUTION
This problem occurs in SQL Server 2005 builds 3042 through 3053 and in SQL Server 2005 builds 3150 through 3158. If you are running a build of SQL Server 2005 SP2 between 3150 and 3158, download and install the following file from the Microsoft Download Center.

The following file is available for download from the Microsoft Download Center:

Download the SQL2005-KB934459-ENU package now.

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.

If you are running any build of SQL Server 2005 SP2 between 3042 and 3053, click the following article number to view the article in the Microsoft Knowledge Base:

934458 FIX: The Check Database Integrity task and the Execute T-SQL Statement task in a maintenance plan may lose database context in certain circumstances in SQL Server 2005 builds 3042 through 3053

To obtain this fix in an automated way, visit the following Microsoft Update Web site:

http://update.microsoft.com

For more information about how to determine the SQL Server version and edition, click the following article number to view the article in the Microsoft Knowledge Base:

321185 How to identify your SQL Server version and edition



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
In the original release version of SQL Server 2005 SP2 and earlier versions, commands that are related to maintenance plan tasks are accumulated and then executed at the same time. When an error occurs, tasks are no longer executed, and the remaining maintenance tasks are not performed. In SQL Server 2005 SP2, individual batches are submitted one at a time. In the original release version of SQL Server 2005 SP2, the database connection was reset between batches. Later batches were left in the context of the default database instead of in the context that was present before the GO statement was executed. The tasks that were affected depended on the context that was present before the GO statement was executed, specifically the Check Database Integrity task and the Execute T-SQL Statement task.

This hotfix is also included in the cumulative update package (build 3161) for SQL Server 2005 Service Pack 2. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

935356 Cumulative update package (build 3161) for SQL Server 2005 Service Pack 2 is available

Keywords: kbqfe kbpubtypekc atdownload kbexpertiseadvanced kbhotfixserver kbsql2005ssis KB934459

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.