董晓涛(David Dong)

博客园 首页 新随笔 联系 订阅 管理
 

SQL SERVER资料之三:数据库执行数据传输

这是我初学时候的笔记,帖出来抛砖引玉!
 
导入,导入和数据的转换是所有数据库管理系统的一个组成部分,当然我们SQL SERVER 也会有!本章主要讲了数据导入/导出的过程,并且讲述了几种可以使用的工具,主要介绍了使用DTS导入,导出和转换架构与数据,以及传输SQL SERVER
传输SQL SERVER数据库(架构,对象和数据)的过程。

一:数据传输
  
在数据库之间移动数据是数据库管理员的一项基本任务。特别的是在某种情况下还要对数据进行某种方式的修改。
      
当我们进行导入导出数据,这是因为几乎所有的环境都要求一定程度的数据互操作性,此时要进行的操作
    
通常包括:确定数据源、指定数据目的、在数据源和目手间的操作或者转换数据(可选)
      
当我们进行数据转换的时候,我们可能要进行数据格式的修改,如我们可能要把01转换成false或者true;
    
也可能进行转换和映射数据,此时我们可能要对来自多个数据源,表和列的数据结合成单个数据集。
      
在进行这种操作的时候我们可以进行调度和自动化处理,这样可以减轻我们数据库管理员有负担。
      
我们也可在SQL SERVER 中进行异构环境下的导入/导出数据!这是由于DTS可以读取任意OLE DB数据源。

二:现在介绍几种导入/导出数据的工具
   
我们可以利用DTS导入/导出向导,DTS设计器,DTS大容量插入操作(Bulk Insert),大容量复制程序(BCP)
和复制,其中我将在以后讲复制,我们将对DTS导入/导出向导,DTS设计器,DTS大容量插入操作(Bulk Insert),大容量复制程序(BCP)
进行讲解,其中我们重点要掌握DTS导入/导出向导的操作!下面我们就进行DTS的讲解!

三:DTS简介
   
我们可以使用DTS进行多个异构数据源间数据的导入,导出和转换,也可以实现在SQL SERVER数据库间的数据库对象(触发器,存储过程,
规则,默认值,约束和用户自动义数据类型)传输!
   DTS
使用OLE DB提供程序从单个或者是多个数据源转换并传输数据,也可以向单个或者是多个数据源导出数据,这是由OLE DB决定的,只要
此数据库只技OLE DB,就可以使用DTS。它在转换数据的时候在源和目的之间进行转换,然后把转换的结果传结数据目的!对它的过程我们可以不
必深入理解,我们只要知道DTS能够进行异构数据源间的数据转换与移动就行了!
  
我们下面将介绍一下SQL SERVER DTS工具:
  1
DTS导入/导出向导:它提供数据源和数据目的间复制数据的最简单方法!我们可以使用它来创建DTS包,DTS包是一个有组织的连接,DTS任务,
DTS
转换和DTS工作流的集合!
  2
DTS设计器
  3
DTSRUN
 
我们现在使用上面的DTS导入/导出向导和DTSRUN来做下面的实验,实验是从pubs数据库读出employee信息,保存在一个文本文件中,此包我们
使用DTSRUN来执行此包

1
。在企业管理器中-工具-数据转换服务-数据导出服务(或者是在命令行下DTSWIZ),打开DTS导入/导出向导,我们在数据源上选择数据源为本机PUBS
数据库,在目的上选择文本文件,在文件名上为结果集选择存储路径和文本文件名,我们让它存储在H盘根目录下,名字为testdts.txt
2
。在下一屏,选择用一条查询指定要传输的数据”-下一步,在查询语句里输入“select * from employee"
然后选择立即运行和存储包,并在下一页指定包名为test(为了增加安全性可以指定所有都密码和用户密码),最后点击完成,可以看到包执行成功的信息。
3
。我们现在打开H盘,可以看到已经存在一个文件testdts.txt,打开我们可以看到就是有employee的内容!我们现在把它删除并使用DTSRUN来运行此包
exec master..xp_cmdshell 'dtsrun /Screate /Usa /Ntest'
结果是:
DTSRun:  
正在装载... 
DTSRun:   
正在执行... 
DTSRun OnStart:  Copy Data from 
结果 to H:\testdts.txt 步骤 
DTSRun OnProgress:  Copy Data from 
结果 to H:\testdts.txt 步骤; 43 行已被转换或复制。; PercentComplete = 0; ProgressCount = 43 
DTSRun OnFinish:   Copy Data from 
结果 to H:\testdts.txt 步骤 
DTSRun:   
包执行完毕。 
NULL
现在查看一下H盘,出现testdts.txt!
为了将来执行,为了将来对其修改,再次使用或者是调度,我们必须保存DTS包。刚才我们在保存DTS包里看到有这么几个选项
 1
COM结构化存储文件:当选择这种文件的时候DTS包才能够被外界访问,此选择此选项时会创建一个带有扩展名.dts的文件。
  
 2
SQL SERVER元数据据服务:通过将DTS包存储到SQL SERVER 元数据服务中,将使包中的元数据能够重复使用,并可被其它程序所使用。如果用户计划
跟踪沿袭,那么就应该将DTS包存储到SQLSERVER元数据服务中。
 3
MSDB数据库:将DTS包及其相关信息存储到系统表sysdtspackage中。与结构化存储文件和SQL SERVER元数据服务不同的是:本选项不允许多个DTS包保存到相同的文件中!
 4
Visual Basic 文件:通过将DTS包保存到Visual Basic脚本中,可以将其结合到VB应用程序!
包的安全性:
  DTS
提供以下两种安全级别:
         
所有者密码:这种安全密码提供对包全部集合和属性的访问权限。如果不具有所有者密码,任何用户都可以访问结构化存储文件来读取包信息!
         
用户密码:通过为加密的DTS包指定用户密码,可以在用户不能够访问包定义,属性的条件下使用包!
四:利用DTS进行数据转换()利用DTS还可以执行更复杂的任务,那就是利用DTS设计器,它能够执行DTS导入/志出向导所能做到的一切,并且功能更加强大!它可以定义工作流!

---董晓涛

posted on 2004-11-26 11:30  董晓涛  阅读(960)  评论(1编辑  收藏  举报