FIX:DTS 对象传输不传输大于 64 KB 的 BLOB 数据

文章翻译 文章翻译
文章编号: 257425 - 查看本文应用于的产品
错误号:53859 (SQLBUG_70)
展开全部 | 关闭全部

症状

在 DTS 进行传输的数据库中,如果“text”、“ntext”或“image”列中的任何行包含的数据大于 64 KB,数据转换服务 (DTS) 对象传输功能可能就不会成功传输二进制大型对象 (BLOB) 数据。

具体症状各异,但可能包括:
  • 访问冲突或其他异常。
  • SQL Server 企业管理器 (SEM) 可能停止响应(挂起)。
  • 传输的数据错误。
  • 传输的数据可能被截断。

原因

对象传输功能使用 SQL 分布式管理对象 (SQL-DMO) 执行传输操作。DMO 不能用于传输每个字段大于 64 KB 的 BLOB 数据。

替代方法

对象传输是标记为“在 SQL Server 7.0 数据库之间传输对象和数据”的“DTS 导入/导出向导”中的选项。若要避免“症状”部分中描述的问题,对于包含大量 text、ntext 或 image 数据的表,请使用“从源数据库复制表”选项。

您可能希望先使用对象传输来传输受影响表的架构,然后使用“从源数据库复制表”选项来移动数据(“复制表”并不传输索引、约束、权限以及其他架构细节)。要仅传输架构,请在使用对象传输功能传输表之前清除“复制数据”复选框。

要识别源数据库中包含可能受此问题影响的“text”、“ntext”或“image”列的表,请运行以下查询:
   USE <source database name>
   GO
   SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS 
   WHERE DATA_TYPE IN ('text', 'ntext', 'image')
				

状态

Microsoft 已经确认这是 SQL Server 7.0 中存在的问题。此问题已在英文版 Service Pack 1 for Microsoft SQL Server 7.0 中得到更正。有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
232570INF:如何获取 Microsoft SQL Server 7.0 Service Pack 1 和 Microsoft Data Engine (MSDE) 1.0
有关更多信息,请与您的主要支持提供商联系。

更多信息

如果运行企业管理器 (SEM) 的计算机上安装了 SQL Server 7.0 Service Pack 1 或更高版本,则在传输大于 64 KB 的 BLOB 数据期间您不应遇到访问冲突、SEM 实例停止响应或其他意外问题。但是,DMO 传输方法的最大 BLOB 大小限制仍是 64 KB,因此在目标数据库中,大于 64 KB 的 text、image 和 ntext 数据将在 64000 字节处截断。传输日志目录中的 <服务器>.<目标数据库>.LOG 文件将报告每行的截断情况:
::错误::
传输状态: 传输数据: (表“[dbo].[bigtext]”)
在表 [dbo].[bigtext] 的第 2 列出现数据截断。

					
请注意,即使已有行被截断,该 GUI 仍会报告以下消息:
Successfully copied objects from Microsoft SQL Server to Microsoft SQL Server.
SQL Server 2000 DMO 传输(或 DTS 中的对象传输)可传输最大 8 MB 的文本。如果试图传输的文本大于 8 MB,则 DTS 传输将失败,并显示以下错误消息:
Failed to copy objects from Microsoft SQL Server to Microsoft SQL Server.
如果在“正在执行包”对话框中双击失败的步骤(复制 SQL Server 对象),则会显示以下错误消息:
[SQL-DMO]大容量复制执行失败。

属性

文章编号: 257425 - 最后修改: 2006年9月12日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft SQL Server 7.0 标准版
关键字:?
kbbug kbfix KB257425
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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