仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1402|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页设计SQL Server 2000中的数据转换服务 (DTS...

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:24:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于insert操作,只需要把event_type改成DELETE_ROWS_EVENT;对于delete操作,改成WRITE_ROWS_EVENTserver|数据|转换择要:为了完成数据兼并、存档和剖析等义务;为了举行使用程序开辟;为了举行数据库或服务器晋级,数据库办理员常常必要导进、导出和转换数据。SQLServer2000中的数据转换服务(DTS)为此供应了一组图形化工具和可编程工具,可以匡助办理员和开辟职员办理从分歧来历到单个或多个方针的数据转移成绩,包含数据提取、转换和兼并。您能够将义务、事情流操纵和限定前提构成DTS数据包,然后布置按期或在特定事务产生时实行该数据包。本白皮书将先容DTS,给出一些可以用于创立DTS办理计划的组件和服务,先容怎样利用DTSDesigner来实行DTS办理计划,最初将先容DTS使用程序开辟。

本页内容
DTS简介
利用DTSDesigner
保留DTS数据包的选项
将DTS作为使用程序开辟平台

DTS简介
年夜部分公司的数据都具有多种存储格局和存储地位。为了撑持决议制订、进步体系功能或晋级现有体系,常常必需将数据从一个数据存储地位转移到另外一个地位。

MicrosoftSQLServer2000数据转换服务(DTS)为此供应了一系列的工具,您能够用来从分歧来历将数据提取、转换和兼并到单个或多个方针。经由过程利用DTS工具,您能够依据公司的特别需求创立定制的数据挪动办理计划,正以下面这些情况:
•您已在初期版本的SQLServer或其他平台(比方MicrosoftAccess)上部署了一个数据库使用程序。如今,新版本的使用程序必要SQLServer2000,并且必要变动数据库架构,并转换部分数据范例。

•为了复制和转换数据,能够构建一个DTS办理计划,将数据库工具从原始数据源复制到SQLServer2000数据库中,同时从头设置数据栏并变动数据范例。您可使用DTS工具来运转这个办理计划,大概将这个办理计划嵌进到您的使用程序中。

•您必需将一些关头的MicrosoftExcel电子表格兼并到SQLServer数据库中。良多部门在每个月底创立电子表格,可是没有设置日程布置来完成一切的电子表格。

•为了兼并电子表格数据,您能够构建一个DTS办理计划,使其在动静被发送到动静行列时实行。这个动静将触发DTS,使其从电子表格中提取数据,实行各类界说的转换,然后将数据装载到SQLServer数据库中。

•您的数据堆栈中保留了有关营业操纵的汗青数据,您要利用MicrosoftSQLServer2000剖析服务来汇总这些数据。这个数据堆栈必要天天夜间从联机事件处置(OLTP)数据库举行更新。而您的OLTP体系一天24小时都在利用中,其功能非常关头。

您能够构建一个DTS办理计划,利用文件传输协定(FTP)将数据文件挪动到当地驱动器中,将数据装载到现实表中,然后利用剖析服务对数据举行统计。您能够布置这个DTS办理计划天天夜间实行,也能够利用新的DTS日记选项来跟踪这个历程所用的工夫,使您可以剖析功能随工夫的变更。

DTS是甚么?
DTS是一组数据转换工具,您能够用来在一个或多个数据源(比方MicrosoftSQLServer、MicrosoftExcel或MicrosoftAccess)之间举行分歧范例数据的导进、导出和转换。个中的连通性经由过程数据会见的开放式尺度-OLEDB-来供应。ODBC(开放式数据库毗连)数据源由OLEDBProviderforODBC来撑持。

您能够将DTS办理计划创立为一个或多个数据包。每一个数据包中能够包括一组有序的义务,界说所要实行的事情,也能够包括数据和工具的转换、界说义务实行的事情流限定和数据源和方针的毗连等。DTS数据包也供应纪录数据包实行细节、把持事件和处置全局变量等服务。
以下工具能够用于创立和实行DTS数据包:
•导进/导出导游(Import/ExportWizard)用于构建绝对复杂的DTS数据包,撑持数据迁徙和复杂转换。

•DTSDesigner图形化地实行DTS工具模子,同意您创立具有大批功效的DTS数据包。

•DTSRun是一个命令提醒符有用程序,用来实行已有的DTS数据包。

•DTSRunUI是DTSRun的图形化界面,也同意传送全局变量和天生命令行。

•SQLAgent不是一个DTS使用程序;可是DTS能够用它来布置数据包的实行。

您也能够利用DTS工具模子经由过程编程创立和运转数据包,构建定制义务和构建定制转换。
DTS中的新内容?
MicrosoftSQLServer2000引进了很多DTS加强和新特征:

•新的DTS义务包含FTP义务、实行数据包义务、静态属性义务和动静行列义务。

•加强的日记功效纪录了每一个数据包实行的信息,同意您具有完全的实行汗青,并能检察义务中每一个步骤的信息。您能够天生非常文件,包括大概因为毛病而没有实行的数据行。

•您能够将DTS数据包保留为MicrosoftVisualBasic文件。

•新的多段数据泵同意初级用户在分歧阶段定制数据转换操纵。同时,也能够利用全局变量作为查询的输出参数。

•您能够在DTS转换义务和实行SQL义务中利用参数化的源查询。

•您可使用实行数据包义务,静态地将全局变量的取值从父数据包分派到子数据包。

前往页首
利用DTSDesigner
DTSDesigner图形化地实行DTS工具模子,同意您图形化地创立DTS数据包。您可使用DTSDesigner来:

•创立包括一个或多个步骤的复杂数据包。

•创立包括庞大事情流的数据包,这些事情流中可包括利用有前提逻辑的多步操纵、事务驱动的代码或多个数据源的毗连。

•编纂已有的数据包。

DTSDesigner界面由事情地区、工具栏和菜单构成。个中事情地区用于构建数据包,工具栏包括无数据包元素,您能够将它们拖动到计划页中,菜单中包括有事情流和数据保证理命令。

:DTSDesigner界面
检察年夜图。

在DTSDesigner中,您能够将毗连和义务拖动到计划页中,并指定事情流实行的按次,从而轻松地创立功效壮大的DTS数据包。上面的内容将界说义务、事情流、毗连和转换,并先容怎样利用DTSDesigner轻松地实行DTS办理计划。
义务:界说数据包中的步骤
DTS数据包中一般包括一个或多个步骤。每一个义务界说了一个大概在数据包实行过程当中实行的事情项目。您可使用义务来:

•转换数据

转换数据义务
用来将数据历来源挪动到方针,能够选择在数据上使用数据栏转换。

数据驱动的查询义务
用来对数据实行基于Transact-SQL的天真操纵,包含存储历程和INSERT、UPDATE或DELETE声明。

?
平行数据泵义务(1)
仅可用于编程,平行数据泵义务实行与转换数据和数据驱动的查询义务不异的功效,可是撑持OLEDB2.5及更新版本所界说的“章节式”数据行集。


•复制和办理数据

批量拔出义务
用于疾速地将批量数据装载到SQLServer表或视图中。

ExecuteSQL义务
用于在数据包实行过程当中运转SQL语句。ExecuteSQL义务也能够保留查询的了局数据。

CopySQLServerObjects义务
用来将SQLServer工具从一个SQLServer安装或实例中复制到另外一其中。您能够复制数据和表等工具,也能够复制视图和存储历程等工具界说。

TransferDatabase义务(1)
用来将SQLServer数据库从一个SQLServer7.0或SQLServer2000实例挪动或复制到SQLServer2000实例中。

TransferErrorMessages义务(1)
用于将用户指定的毛病动静从SQLServer7.0或SQLServer2000实例复制到SQLServer2000实例,这些毛病动静是由sp_addmessage体系存储历程所天生的。

TransferLogins义务(1)
用来将帐号从SQLServer7.0或SQLServer2000实例复制到SQLServer2000实例。

TransferJobs义务(1)
用来将功课从SQLServer7.0或SQLServer2000实例复制到SQLServer2000实例。

TransferMasterStoredProcedures义务(1)
用来将存储历程从SQLServer7.0或SQLServer2000实例中的master数据库复制到SQLServer2000实例的master数据库。


•从数据包中将义务作为功课运转

ActiveXScript义务
用来编写代码,实行其他DTS义务中没有的功效。

DynamicProperties义务(1)
用于在数据包运转时从DTS数据包外的来历处取得数值,并将这些值分派给选定的数据包属性。

ExecutePackage义务(1)
用于从数据包中运转其他DTS数据包。

ExecuteProcess义务
用于运转可实行程序或批处置文件。

FTP义务(1)
用来从远程服务器或Internet地位下载数据文件。

MessageQueue义务(1)
用来从Microsoft动静行列发送和承受动静。

SendMail义务
用来发送电子邮件。

AnalysisServicesProcessing义务(2)
用于处置一个或多个SQLServer2000剖析服务中所界说的工具。

DataMining义务(1,2)
用于从SQLServer2000剖析服务所界说的数据发掘模子工具中创立一个展望查询和输入表。


1SQLServer2000中新增。
2仅合用于已安装SQLServer2000剖析服务的情况。
您能够程序化地创立定制义务,然后利用RegisterCustomTask(注册定制义务)命令将它们集成到DTSDesigner中。
为了申明这些义务的利用,在这里我们给出了一个包括两个义务的复杂DTS数据包:MicrosoftActiveXScript义务和SendMail义务:
:具有两个义务的DTS数据包
ActiveXScript义务能够驻留任何ActiveX剧本引擎,包含MicrosoftVisualBasicScriptingEdition(VBScript)、MicrosoftJScript大概ActiveStateActivePerl(您能够从http://www.activestate.com/下载)。SendMail义务能够发送动静,指出该数据包已运转。请注重,这些义务是没有按次的。在实行数据包时,ActiveXScript义务和SendMail义务同时运转。
事情流:设置义务优先级
当您在界说一组义务时,一般义务的实行是应当有必定按次的。假如这些义务具有必定的按次,那末每一个义务将称为一个过程当中的一个步骤。在DTSDesigner中,您能够在DTSDesigner计划页中对义务举行操纵,利用优先级限定来把持义务实行的按次。
优先级限定将数据包中的义务顺次链接起来。下表给出了您能够在DTS中利用的优先级限定的范例。
优先级限定申明
OnCompletion(完成后)
(蓝色箭头)
假如您但愿义务2处于守候形态,直至义务1完成(不管了局怎样),那末就利用OnCompletion优先级限定将义务1链接就任务2。

OnSuccess(乐成后)
(绿色箭头)
假如您但愿义务2处于守候形态,直至义务1乐成完成,那末就利用OnSuccess优先级限定将义务1链接就任务2。

OnFailure(失利后)
(白色箭头)
假如您但愿义务2仅在义务1没法乐成实行时才入手下手实行,那末就利用OnFailure优先级限定将义务1链接就任务2。

下图给出了具有OnCompletion优先级限定的ActiveXScript义务和SendMail义务。当ActiveXScript义务完成后(不管乐成仍是失利),SendMail义务都入手下手运转。
:具有OnCompletion优先级限定的ActiveXScript义务和SendMail义务
您能够设置分歧的SendMail义务,一个用于OnSuccess限定,另外一个用于OnFailure限定。这两个SendMail义务能够依据ActiveXScript的乐成或失利来发送分歧的邮件。
:邮件义务
您也能够在一个义务上使用多个优先级限定。比方,SendMail义务"AdminNotification"能够具有来自剧本#1的OnSuccess限定和来自剧本#2的OnFailure限定。在这类情形下,DTS以为其利用逻辑"AND"干系。因而为了发送AdminNotification邮件,剧本#1必需乐成实行,而剧本#2必需失利。
:统一义务多个优先级限定的示例
毗连:会见和挪动数据
为了乐成地实行复制和转换数据的DTS义务,DTS数据包必需与其来历和方针之间创建无效的毗连,一样必要毗连到其他数据源(比方查询表)
在创立数据包时,您能够从无效OLEDB供应商和ODBC驱动程序列表当选择毗连范例,对毗连举行设置。可用的毗连范例包含:
•Microsoft数据会见组件(MDAC)驱动程序

MicrosoftOLEDBProviderforSQLServer

Microsoft数据链接

MicrosoftODBCDriverforOracle


•MicrosoftJet驱动程序

dBase5

MicrosoftAccess

HTML文件(来历)

MicrosoftExcel97-2000

Paradox5.X


•其他驱动程序

文本文件(来历)

文本文件(方针)

其他毗连


DTS同意您利用任何OLEDB毗连。毗连工具栏中的图标为经常使用毗连供应了便利的会见体例。
下图先容了一个具有两个毗连的数据包。数据被从一个Access数据库(来历毗连)复制到SQLServer临盆数据库(方针毗连)。
:具有两个毗连的数据包示例
检察年夜图。
这个数据包的第一步是一个实行SQL义务,该义务反省是不是已存在方针表。假如已存在,这个表将被删除偏重新创立。在乐成的完成了实行SQL义务后,数据在第二步中被复制到SQLServer数据库。假如复制操纵失利,则在第三步中发送一封电子邮件。
数据泵:转换数据
DTS数据泵是一个DTS工具,用来驱动数据的导进、导出和转换。在转换数据、数据驱动的查询和平行数据泵义务中将利用这个数据泵。这些义务将在来历和方针毗连中创立数据行组,然后创立数据泵实例,将数据行在来历和方针之间挪动。在数据行被复制时,对每行举行数据转换。
下图的步骤2中,在AccessDB义务和SQLProductionDB义务之间利用了一个转换数据义务。转换数据义务是两个毗连之间的灰色箭头。
:转换数据义务的示例
检察年夜图。
为了界说历来源毗连搜集到的数据,您能够为这个转换义务创立一个查询。DTS撑持参数化的查询,同意您在查询实行时界说查询值。
您能够在该义务的属性对话框中键进这个查询。大概利用数据转换服务查询计划器(DataTransformationServicesQueryDesigner),该工具能够用来为DTS义务图形化地创立查询。下图中,利用查询计划器构建了一个将三个表到场到pubs数据库中的查询。
:数据转换服务查询计划器界面
检察年夜图。
在转换义务中,您也能够界说对数据做出的变动。下表注释了DTS供应的内置转换功效。
转换申明
复制数据栏
用来间接将数据历来源复制到方针数据栏中,对数据不举行任何转换。

ActiveX剧本
用来构建定制的转换。请注重,因为转换是逐行举行的,因而ActiveX剧本大概会影响DTS数据包的实行速率。

日期事务字符串
用来未来源数据栏中的日期或事务转换为方针数据栏中分歧的格局。

小写字母字符串
用来未来源数据栏中的小写字母转换(假如必要)为方针数据栏的数据范例。

年夜写字母字符串
用来未来源数据栏中的一切年夜写字母转换(假如必要)为方针数据栏的数据范例。

字符串中段
用来历来源数据栏中提取子字符串,将其转换,然后将了局复制到方针数据栏中。

修剪字符串
用于删除来历数据栏中字符串前、后和两头的空缺,并将了局复制到方针数据栏中。

读取文件
用来翻开来历数据栏中所指定的文件的内容,并将其内容复制到方针数据栏中。

写进文件
用来未来源数据栏(数据)的内容复制到文件中,该文件的路径由第二个来历数据栏(文件名)指定。

您也能够经由过程编程创立本人的定制转换。创立定制转换的最快办法是利用举动模板库(ActiveTemplateLibrary,ATL)定制转换模板,该模板包括在SQLServer2000DTS示例程序中。
数据泵毛病日记
SQLServer2000中具有一种纪录转换毛病的新办法。您能够界说三种非常日记文件,用于数据包实行历程:毛病文本文件、来历毛病数据行文件和方针毛病数据行文件。
•惯例毛病信息被写进到毛病文本文件中。

•假如转换历程失利,那末来历数据即将呈现毛病,并将该行写进到来历毛病数据行文件中。

•假如拔出历程失利,那末方针数据即将呈现毛病,并将该行写进到方针毛病数据行文件中。

非常日记文件被界说在转换数据的义务中。每一个转换义务能够具有它本人的日记文件。
数据泵阶段
在默许情形下,数据泵只要一个阶段:数据行转换。这个阶段就是您所设置的在转换数据义务、数据驱动的查询义务和平行数据泵义务中的数据栏转换,而不选择阶段。
多半据泵阶段功效是SQLServer2000中所新增的。经由过程在SQLServerEnterpriseManager当选中多段数据泵选项,您能够在操纵过程当中的分歧中央会见数据泵,增加功效。
在将一行数据历来源复制到方针时,数据泵依照下图所示的基础程序举行操纵。
:数据泵历程
检察年夜图。
在数据泵处置完最初一行数据后,义务完成,数据泵操纵停止。
假如初级用户必要在数据包中增加功效,使其撑持任何数据泵阶段,他能够如许做:
•为每一个定制的数据泵阶段编写一个ActiveX剧本阶段。假如您利用ActiveX剧本功效来定制数据泵阶段,不必要任何数据包之外的代码。

•在MicrosoftVisualC++中创立COM工具,定制所选中的数据泵阶段。您在数据包之外开辟这个程序,转换的每一个所选中的阶段都将挪用这个程序。与会见数据泵阶段的ActieX剧本办法分歧的是,ActiveX剧本办法为每一个选中的阶段利用分歧的功效和出口点,而这类办法供应了单一出口点,由多个数据泵阶段在义务实行过程当中挪用。

前往页首
保留DTS数据包的选项
以下选项能够保留DTS数据包:
•MicrosoftSQLServer
假如您但愿在任何收集中的SQLServer实例中保留数据包,请将您的DTS数据包保留在MicrosoftSQLServer上,并保存这些数据包的清单,在数据包开辟过程当中增加和删除数据包版本。

•SQLServer2000元数据服务
假如您企图跟踪数据包版本、元数据和数据血缘信息,请将DTS数据包保留在元数据服务上。

•布局化的存储文件
假如您必要在收集中复制、挪动和发送数据包,而不想把数据包存储到MicrosoftSQLServer数据库中,请将DTS数据包保留为布局化的存储文件。

•MicrosoftVisualBasic
假如您但愿将其集成到VisualBasic程序中,或作为DTS使用程序开辟的原型,请将由DTSDesigner和DTS导进/导出导游创立的DTS数据包保留为MicrosoftVisualBasic文件。

前往页首
将DTS作为使用程序开辟平台
DTSDesigner供应了多种数据挪动义务的办理计划。DTS经由过程供应对DTS工具模子的程序化会见,扩大了很多可用的办理计划。利用MicrosoftVisualBasic、MicrosoftVisualC++或其他撑持COM的使用程序开辟体系,您能够为您的情况开辟一个定制的DTS办理计划,利用图形工具中所不撑持的功效。
DTS以多种分歧的体例为开辟职员供应撑持:
•构建数据包
您能够开辟极为庞大的数据包,会见工具模子中的一切功效,而不必要利用DTSDesigner或DTS导进/导出导游。

•扩大数据包
您能够经由过程定制的义务和转换来增添新的功效,这些义务和转换是专门为您的营业定制的,而且能在DTS中反复利用。

•实行数据包
DTS数据包的实行不必要基于任何所供应的工具,能够经由过程COM事务经由过程编程实行DTS数据包和显现历程,同意构建嵌进式或定制的DTS实行情况。

所供应的DTS程序示例可以匡助您懂得DTS编程。这些示例与SQLServer2000一同安装。
假如您要开辟DTS使用程序,那末您能够从头分派DTS文件。更多信息,请参考SQLServer2000光盘的Redist.txt文件。
更多信息
MicrosoftSQLServer2000BooksOnline中具有很多有关DTS、利用DTS使用程序和构建定制办理计划的信息。其他信息,请参考以下资本:
•MicrosoftSQLServerWeb站点,地点为http://www.microsoft.com/china/sql/。

•MicrosoftSQLServerDeveloperCenter,地点为http://msdn.microsoft.com/library/default.asp?URL=/sqlserver/。

•SQLServerMagazine,地点为http://www.sqlmag.com/。

•Microsoft.public.sqlserver.server和microsoft.public.sqlserver.datawarehouse旧事组,地点为news://news.microsoft.com。

•关于SQLServer的微软官方课程(MicrosoftOfficialCurriculum)。如需懂得最新的课程信息,请会见MicrosoftTrainingandServicesWeb站点,地点为http://www.microsoft.com/traincert/default.asp

本文档所供应的信息材料仅代表Microsoft公司在信息公布当日就研究举动所环绕的成绩持有的一时概念。鉴于Microsoft公司必需针对瞬息万变的市场情况不休做出响应调剂,故而,本文档内容不该被注释为Microsoft方面所做出的任何答应,与此同时,Microsoft也没法在公布之往后持续包管文件所含信息的正确性。
本白皮书仅供用于信息参考目标。Microsoft并未在本文档中供应任何情势的包管、昭示或表示。
恪守一切合用版权功令是文档利用者所答允担的任务。Microsoft公司虽未在版权回护下就与本文档相干的权力做出任何限制,可是,任何人未经Microsoft公司书面受权允许,均不得出于任何目标、以任何情势、使用任何手腕(电子、机器、影印、灌音等)将本文档的任何构成部分制造成拷贝、存储或引进检索体系、亦或向任何工具举行传送。
Microsoft公司大概就本文档所触及的主题具有专利、专利请求、商标、版权或别的情势的常识产权。除非已同Microsoft公司签定书面允许协定,并依据协定条目取得明白受权,任何出示本文档的举动均没法使您具有针对上述专利、商标、版权或别的常识产权加以使用的允许权限。
?2000MicrosoftCorporation.保存一切权力.
Microsoft、ActiveX、JScript、VisualBasic和VisualC++均系Microsoft公司在美国和/或别的国度所具有的注册商标或商标。
本文档所触及的别的公司和产物的实在称号均为其各自一切者持有的商标。

有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。
透明 该用户已被删除
沙发
发表于 2015-1-19 10:55:55 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
莫相离 该用户已被删除
板凳
发表于 2015-1-28 06:11:22 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
小魔女 该用户已被删除
地板
发表于 2015-2-5 19:17:50 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
兰色精灵 该用户已被删除
5#
发表于 2015-2-13 07:42:36 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
精灵巫婆 该用户已被删除
6#
发表于 2015-3-3 19:17:49 | 只看该作者
比如日志传送、比如集群。。。
简单生活 该用户已被删除
7#
发表于 2015-3-11 12:55:25 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
爱飞 该用户已被删除
8#
发表于 2015-3-18 20:17:24 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-26 15:19:32 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表