Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

数据变换和转换注意事项(SQL)

时 间:2008-04-29 08:32:13
作 者:UMVSOFT整理   ID:16  城市:江阴
摘 要:数据变换和转换注意事项(SQL)
正 文:

        使用数据转换服务 (DTS) 转变或转换异类数据和目的服务器之间的数据之前,请考虑不同程序、提供程序以及驱动程序支
持数据类型和 SQL 语句的方式的变化。

        当使用 Microsoft? SQL Server? 作为数据源时,请考虑下列事项:

        将 real 数据类型转换为 int 数据类型也许不能返回精确的值,因为 SQL Server 2000 只支持精确度为 6 位数字的
real 数据类型。例如,real 型数字 2147480000 可能生成 2147480065 的 int 值。


         从一个文本文件将 string (DBTYPE_WSTR) 列转换为 date (DBTYPE_DATE) 或 time (DBTYPE_TIME) 列时,OLE DB 数据转
换服务组件只接受一种日期或时间格式 (yyyy-mm-dd hh:mm:ss.fffffffff)。使用日期时间字符串转换,或者使用 CDate
函数编码 Microsoft ActiveX? 脚本转换正确地转换日期。


        SQL Server 2000 不支持 OLE DB 类型 DBTYPE_DATE 或 DBTYPE_TIME。SQL Server 2000 只支持 DBTYPE_DATETIME。


        若要通过多步骤访问数据,请避免在转换过程中使用 temp 表。应使用全局 temp 表或在 tempdb 中创建永久表。



        从 temp 表返回行的存储过程不能用作转换源。可以使用存储过程从全局 temp 表或表返回行。


        在转换数据任务、数据驱动的查询任务或 DTS 设计器中的执行 SQL 任务中使用临时表时,请记住:不能使用 Transact-
SQL 语句或调用 temp 表的存储过程作为源。
该限制并不应用于 DTS 设计器的外部。可使用通过编程方式访问 SQL Server temp 表的源语句或存储过程。

DTS 导入/导出向导和 DTS 设计器
当使用 DTS 导入导出向导和 DTS 设计器创建包时,请考虑以下事项:

DTS 用户界面允许共享任务中现有的连接,但是同一个连接不能既用在一个转换的源中又用在该转换的目的中。


         使用 DTS 设计器或 DTS 导入/导出向导,有可能为一些只作为数据源的提供程序指定只读或正在使用状态(例如,
Microsoft Access 和 ODBC DSN )。单击"连接属性"对话框中的"高级"选项卡,然后在"高级连接属性"对话框中,将模式
属性值设置为 1。


        使用 DTS 导入/导出向导或 DTS 设计器创建表时,在目的地上创建的表的所有者为当前用户(通常是 dbo),与谁是源表
的所有者无关。这将产生这种情况:dbo 试图在目的地创建一个表,而该表的名称已经存在,从而导致尝试失败。


        当使用 DTS 设计器定义数据驱动的查询时,数据目的地必须能够支持 OLE DB ICommand 接口。由于这种限制,类似文本文件的目的不被支持。


        如果 text、ntext 和 image 类型的字段长度超过 8388602 字节,则 DTS 的复制 SQL Server 对象任务将截断超出的部
分。DTS 设计器或 DTS 导入/导出向导不显示任何错误信息,而是显示任务已成功完成。
唯一的失败指示是一条写入日志文件的日志消息,此文件的名称为 <server>.<database>.log,位于"复制 SQL Server 对
象任务属性"对话框的"复制"选项卡所指定的脚本文件目录中。此日志消息详细说明表和列,但不指出发生截断的行。无任
何错误记录写入 DTS 错误文件或 SQL Server 日志。

Microsoft SNA Server
        当使用 Microsoft SNA Server 作为数据源时,请考虑下列事项:

AS/400 和 VSAM 的 Microsoft OLE DB 提供程序不支持 DTS 导入/导出向导用来创建或截断表的 SQL 语句。
Microsoft Access
使用 Access 时,应考虑下列事项:

        当从 SQL Server 2000 中将数据导出到 Microsoft Access 97 或更早的版本中,Access 的 Microsoft OLE DB 提供程序
在内存中为所有插入设置缓冲区,并且只在 DTS 导入/导出向导完成操作时提交它们。结果是,可以在导出大量表时,面
计算机教程数据变换和转换注意事项(SQL)来自www.itwen.comIT WEN计算机教程网

        对内存较小的形势。然而,可以通过构造在多个传递中发送较少行数的 Select 语句解决该问题。
Microsoft Visual FoxPro
Microsoft Visual FoxPro? 只支持 numeric 数据类型的 (15,9) 精度。如果导出到 Visual FoxPro 的数据超出该精
度,则会被截断并四舍五入。

Visual FoxPro 不支持 Select INTO 语句。


DTS 查询设计器支持 Visual FoxPro Insert VALUE 语句,但不支持使用 Select 语句的 Insert 语句。


ODBC 的 Microsoft OLE DB 驱动程序无法使用 FoxPro ODBC 驱动程序将 BLOB 写入 Visual FoxPro,因为 Visual
FoxPro 不支持动态游标。
ODBC
当连接到 ODBC 数据源时,请考虑下列事项:

ODBC 的 Microsoft OLE DB 提供程序在执行导出操作时需要一个在带有 BLOB 数据列的所有目标表上的唯一键。


         当使用带有 SQL Server ODBC 驱动程序的 ODBC 的 Microsoft OLE DB 提供程序时,在安排带有源行集中其它数据类型的
列之后安排所有 BLOB 列。可以使用 Select 语句重新将 BLOB 列安排到源行集的末尾。DTS 导入/导出向导自动地执行该
操作。

Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助