FIX: FetchBufferSize Greater than Certain Number Fails to Transfer all Rows and Does Not Return an Error

This article was previously published under Q286737
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 101216 (SQLBUG_70)
BUG #: 351892 (SHILOH_BUGS)
SYMPTOMS
When you transfer a SQL Server table from one database to another by using Data Transformation Services (DTS), if you increase the value of the Fetch Buffer Size parameter, only a few rows from the source table may be transferred to the destination table.

If you leave the Fetch Buffer Size at the default of 1, there are no inconsistencies. However, if you increase the Fetch Buffer Size parameter to a higher value, all the rows from the source table may not be transferred and no error message occurs.
CAUSE
This problem is caused by an internal modification of the fetch size in the SQLOLEDB provider. The adjustment is performed dynamically at run-time, and is based on numerous factors.
RESOLUTION

SQL Server 2000

To resolve this problem, obtain the latest service pack for SQL Server 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
WORKAROUND
Reduce the Fetch Buffer Size parameter value to a value that causes all rows to transfer. The value of 1, which is the default, should always work.
STATUS

SQL Server 2000

Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.

SQL Server 7.0

Microsoft has confirmed that this is a problem in SQL Server 7.0.

Properties

Article ID: 286737 - Last Review: 01/16/2015 21:29:44 - Revision: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • kbnosurvey kbarchive kbbug kbfix kbsqlserv2000sp1fix KB286737
Feedback