例18-1: 使用DTS 向导导出pubs 数据库中的authors 表。
利用SQL Server Enterprise Manager 执行数据导出的步骤为:
(1) 启动SQL Server Enterprise Manager 后,登录到指定的服务器,右击Data Transformation Services 文件夹,在d出菜单中选择All tasks, Export data,打开DTS Export Wizard, 如图18-1 所示。
1167834486_ddvip_4288.gif
(2) 单击“下一步”按钮,打开Choose a Data Source 对话框,如图18-2 所示。首先在Source Server 旁的下拉列表中选择数据源。在本例中选择Microsoft OLE DB Provider for SQL Server。 如果使用SQL Server 认证方式,则应输入访问数据库的合法用户账号和密码,在Database 旁的下拉列表中选择pubs (先单击Refresh 按钮)。
1167834486_ddvip_3082.gif
郑山升 (3) 单击“下一步”按钮,打开Choose a Destination 对话框,如图18-3 所示。在Destination 旁的下拉列表中选择Microsoft OLE DB Provider for SQL Server。 Database 旁的下拉列表中选择DBA_pubs 数据库。
1167834486_ddvip_3964.gif
(4) 单击“下一步”按钮,打开Specify Table Copy or Query 对话框,如图18- 4 所示。在此处可以指定传递的内容,可以传递表或某一查询的数据结果集甚至于数据库对象。在本例中选择Copy table s from the source database。
1167834486_ddvip_5053.gif
(5) 单击“下一步”打开Select Source Table and View 对话框,如图18-5 所示。从中选择一个或多个表或视图进行传递。通过Preview 按钮可对将要传递的数据进行预览。
1167834487_ddvip_1760.gif
(6) 如果想定义数据转换时源表和目标表之间列的对应关系,则单击Trnsform 列的方格按钮,打开Columns Mapping, Transformation ,and Constrains 对话框,如图18-6 所示。
其中各选项的含义如下: Create destination table: 在从源表拷贝数据前首先创建目标表,在缺省情况下总是假设目标表不存在,如果存在则发生错误、除非选中了Drop and recreate destination table if it exists 选项; Delete rows in destination table: 在从源表拷贝数据前将目标表的所有行删除,仍保留目标表上的约束和索引,当然使用该选项的前提是目标表必须存在; Append rows to destination table: 把所有源表数据添加到目标表中,目标表中的数据、索引、约束仍保留。但是数据不一定追加到目标表的表尾,如果目标表上有聚簇索引,则可以决定将数据插入何处; Drop and recreate destination table: 如果目标表存在,则在从唯镇源表传递来数据前将目标表、表中的所有数据、索引等删除后重新创建新目标表; Enable identity insert: 允许向表的标识列中插入新值。
(7) 在进行数据转换时,可以通过脚本语言(如Jscript Perscript Vbscript)对源表中的某一列施加某种运算(乘、除或将该分割成几列、或将几列合并成喊老一列),然后再将这种结果复制到目标表。此时应选中Columns Mapping、 Transformation, and Constrains 对话框的 Transformations 标签页,如图18-7 所示。
1167834487_ddvip_6508.gif
1167834487_ddvip_5096.gif
(8) 应选中Columns Mapping、 Transformation、 and Constraints 对话框的 Constraints 标签页,如图18-8 所示。
1167834487_ddvip_9253.gif
(9) 返回Select Source Table 对话框,单击“下一步”打开Save, Schedule and Replicate Package 对话框,如图18-9 所示。
1167834487_ddvip_4683.gif
在When 选项区可以选择与包有关的 *** 作: Run immediately: 表示立即运行包; Create DTS package for Replication: 表示让由发布目标来进行复制; Schedule DTS package for later execution: 表示将包保存之后,在以后的某一规划时间运行。
在Save 选项,选中Save DTS Package, 则将包进行保存。 SQL Server: 将包存储在msdb 数据库中; SQL Server Meta Data Service :将包存储在Repository 中; Structured Storage File: 以DTS COM 结构的文件格式存储。容易通过文件服务器进行邮递和分发。 Visual Basic File (10) 单击“下一步”,打开Save DTS Package 对话框,如图18-10 所示。在 Name 输入该包的名称AuthorsPackage, 可以将包保存在本地服务器或其它的远程服务器,也可以选择适当的认证方式,如果选择SQL Server 认证,要提供用户名和密码。
1167834487_ddvip_3921.gif
(11) 单击“下一步”,在Completing the DTS Import/Export Wizard 对话框中单击“完成”,结束包的创建。 *** 作如图18-11 所示。
注意:在步聚(4)的specity table copy or query 双对框中,如果选中use a query to specify the data to transfer选项,单击“下一步”之后打开之后打开type sol statement对话框,如图18-12所示。在query statement下的空白框中输入select语句,则该查询语句的结果集成是所有转换数据。可以通过单击query builder按钮来激活创建查询向导。
1167834487_ddvip_43.gif1167834487_ddvip_7767.gif1167834487_ddvip_5800.gif1167834488_ddvip_3478.gif1167834488_ddvip_4832.gif1167834488_ddvip_970.gif1167834488_ddvip_786.gif
文章知识点与官方知识档案匹配
MySQL入门技能树SQL高级技巧CTE和递归查询
45585 人正在系统学习中
关注展开
打开CSDN APP,看更多技术内容
数据库导入导出工具(dts)
目前只做了 mysql 数据库导入导出工具 使用属性文件配置数据库 可扩展其它数据库的导入导出 导出数据格式为xml文件支持超大数据文件(百兆以上)导入导出
compile、implemention、api、compileOnly的区别
在gradle3.0中,如果我们依然使用compile依赖的话会有如下提示Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and ‘api’. 可见,compile依赖关系已被弃用,被implementation和api替代,同样,provided也被compile only替代。 ...
继续访问
【Android 修炼手册】Gradle 篇 -- Gradle 的基本使用
预备知识 基本的 android 开发知识 了解 Android Studio 基本使用 看完本文可以达到什么程度 掌握 gradle 的基本使用 了解 gradle 及 android gradle plugin 了解 gradle 构建阶段及生命周期回调 掌握 Task,Transform 等概念 学会自定义 task,自定义 gradle 插件 如果您已经达到上面的程度,那么可以不用...
继续访问
使用compileOnly依赖jar包,却仍然参与打包的问题
1.删除implementation fileTree(dir: ‘libs’, include: [’*.jar’]) 2.使用compileOnly引入编译时需要但不打包的jar
继续访问
热门推荐 gradle compileOnly的使用场景
Android studio升级到3.0之后,依赖方式也有了更新。 这是2.x 图片.png 来源网络 这是3.0 图片.png 来源网络 其中2.x版本的 Provided 变成了 compileOnly 这个命令的意思是 只在编译时有效,不会参与打包 举个例子: 新建一个工程,同时新建一个library 图片.png testlibrary的gra...
继续访问
用DTS方式实现数据导入导出 *** 作
数据转换服务(DTS)在数据库管理和开发的多种领域都有会涉及DTS:数据仓库-将数据从原始的处理系统和表格中提取出来以供报表使用
建立OLAP
将大量数据从文本文件或其它非数据库格式的文件中拷贝到数据库
生成Microsoft Office文档报表
使用 Distributed Transaction Coordinator (DTC)实现多数据库 *** 作
在客户的桌面程序或网站上,经常需要允许用户按需执行DTS包。在这种情况下,在部署DTS包时,你应该决定将DTS包安置在何处,以及通过何种手段调用它。
你的选择
要建立一个按需执行的DTS包,可以有多种选择。下面就对这些选择进行逐一说明。
SQL Server job
你可以在SQL Server里建立一个job,并调用sp_start_job存储过程。使用sp_start_job的不足之处在于它是一个异步过程。由于它不能返回成功或失败指示,你必须强制使用sp_help_job系统存储过薯皮蠢程查询job的结果。除非不关心job调用后的结果,否则异步的job将使桌面程序或Web程序变得很复杂。一个job可以被设置成非管理员(sa)模式,但需要一些额外的步骤。
在客户端桌面使用DTS DLLs
第二种方法是用户电脑载入Enterprise Manager或DTS DLLs,在用户的电脑上调用DTS包。虽然用户电脑执行DTS包有一定可行性,但也有不足:必须考虑到升级DTS包带来的分发和安装问题。
在服务器上使用sp_OA 扩展存储过程
第三种选择,也就是本文所介绍的核心内容,就是使用sp_OA系统存储握吵过程族并有计划的调用DTS包。这种方案可以有效的避数陪免上两种方案的弊端。
使用 VBScript调用DTS包
实现一个可以运行DTS包的存储过程的第一步是,编写一段VBScript代码。因为sp_OA存储过程使用起来有些麻烦,因此在利用sp_OA存储过程实现目标之前,要用VBScript编写你希望实现的代码。一般倾向于使用Visual Basic进行简单的脚本开发工作。如图A所示,通过在项目引用窗口中加入DTS包对象库,就可以在脚本中引用DTS包对象了。
图A:DTS对象库
在代码中使用了LoadFromStorageFile函数。一般说,开发工作应该在一个测试环境进行。了解DTS格式的结构化,对将测试产品变为实际产品时很有帮助。
Sp_OA 实现
写好了VBScript代码,就可用sp_OA扩展存储过程实现代码。和VBScript类似,sp_OA系统存储过程允许与对象库的COM+ API进行交互。
Sp_OACreate和在VB或VBScript中调用的CreateObject函数类似。Sp_OAGetProperty、sp_OASetProperty以及sp_OAMethod用来连接对象库中的特性和函数。和VB或 VBScript不同的是,sp_OA存储过程导致的COM+错误不会令SQL语句失败,因此必须手动检查每个使用sp_OA的函数是否工作正常。
同时,很多sp_OA存储过程都会引用参数,因此必须在sp_OA存储过程中的适当参数后加入OUTPUT语句。如果省略了OUTPUT 语句,T-SQL也不会发出警告信息。因此在运行时状态,虽然存储过程运行正常但也不会返回正确值。列表B是一个详细的实现代码。
解决方案中包括可以重命名DTS包的表格以及实现的过程。其中sp_AdRunDTSPackageOnServer存储过程接收一个ID参数。在继续执行前,程序会从T_AdDTSPackageSetup表中,查找到达DTS包的SQL Server路径。
安全性
详细的安全性问题不在本文的讨论范围,这里要说的是一些必须考虑到的基本问题:
在主数据库的sp_OA扩展系统存储过程中,实现sp_AdRunDTSPackageOnServer存储过程需要EXECUTE权限。为了防止一些恶意用户通过sp_OA过程实现某种目的,可以针对应用程序修改SQL Server规则,以加强安全性。
T-SQL的CURRENT_USER函数对系统安全会有稍许帮助。使用CURRENT_USER和T_AdDTSPackageSetup表格中的区域,可以查询某个用户是否被设为:使用给定的DTS包。
DTS包在SQL Server上执行时,会受到SQL Server Agent服务的帐户设置影响,如果从文件系统中读取ASCII文件,应该确定SQL Server Agent的帐户设置对该文件有通过许可。
扩展范例
可以使用sp_OA系统存储过程与其他COM+库进行交互。同时在其他使用ODBC和ActiveX数据对象(ADO)的非SQL Server系统上,sp_OA也可以有效的调用存储过程。一个仅10行左右的VBScript脚本根本没有实用价值,而最后合成的T-SQL代码会变得非常冗长。网上的SQL Server 2000 Books 包括详细的COM+对象库的支持说明,并包含了sp_OA系统存储过程的相关文档。当用户再需要按需运行DTS包时,不妨考虑使用sp_OA系统存储过程来实现。
SQL server 2000以前,叫此旦高dts,全称是:Data Transformation Services;SQL server 2005以后就改叫dtsx,集成在森尺SSIS中。也就是说,需要安装一个对应SQL Server 20XX的SSIS版本,安装后就可以运行dtsx文件了。
Data Transformation Services,数据转换服务,简称DTS。
使用 DTS 的功能可以轻易的存取、转换和载入使用 OLE DB、Open Database Connectivity(ODBC)或文字档的资料来源,并且将资料转入 OLE DB 资料库或多维度存放区。DTS 也迟模会将资料转换工作自动化,藉由规则性的排程以允许使用者自动转换资料。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)