山那边是海 发表于 2015-1-16 22:17:36

MSSQL网站制作之怎样天真使用SQL Server 2005 SSIS变量...

CSV逻辑上由逗号分割数据的存储引擎  跟着SQLServer2005不休的推行和提高,愈来愈多的企业的决议撑持项目接纳了SQLServer2005商务智能办理计划。本文就SSIS开辟ETL(Extract—Transform—Load,数据抽取、转换、装载的历程)过程当中SSIS用户变量的利用向读者作复杂先容。
  1、SSIS变量简介
  SSIS(SQLServerIntegrationServices,SQLServer整合服务)变量分为两种,一种是体系变量,一种用户界说的变量。体系变量包括有关包、容器、义务或事务处置程序的十分有效的信息。比方,在运转时,MachineName体系变量包括运转包的盘算机的称号,StartTime变量包括包入手下手运转的工夫。体系变量是只读的。在SSIS中,用户变量是用户在开辟的过程当中依据必要声名的变量。用户变量可使用在剧本中,在由优先束缚、For轮回容器、派生列转换和前提性拆分转换利用的表达式中,和在更新属性值的属性表达式中。
  在各类编程言语中声名的变量一样平常情形下城市有感化局限的,SSIS变量也不破例,SSIS变量也是有感化局限的。依据感化局限分类,变量分为包变量和组件变量。包变量在包任何一个组件中都能够挪用,组件变量只可以在声名变量的组件中无效。在变量的窗口中能够看到变量的感化域(如所示)。BeginDate就是TestPackage包变量,而i是数据转换这个数据流组件的变量。

  
  2、SSIS用户变量的声名、赋值、利用
  1、声名变量
  声名变量十分复杂,假如你要声名包变量,只需单击把持流选项卡,然后在包开辟地区空缺处单击右键选择变量命令(呈现如的画面),单击新建变量按钮就新建一个变量,输出称号,选择数据范例,赋初值就完成了(如)。
  白色方框是新建变量按钮,蓝色方框是删除按钮。假如要声名某数据流义务组件利用的变量,只需双击该数据流义务组件,在流把持选项卡空缺的中央单击右键选择变量命令,在变量窗口中新建一个变量,这时候变量的感化域就是你所选的流义务组件。

  
  2、赋值
  在实践开辟中,除在变量声名的时分给变量赋值外,笔者还探索了两种体例给变量赋值,一种是经由过程实行SQL义务组件前往值的体例给变量赋值,一种是经由过程剧本组件来给变量赋值。
  使用实行SQL义务组件办法是先设置好组件的数据库毗连属性,然后输出从数据取数据的SQL语句,设置组件前往的了局集为单行。在了局集界面中单击“新建“,在了局集那一列输出你方才SQL语句中前往列的称号,在变量称号列选择你要赋值的变量(历程如、所示)。

  

  
  中白色方框中SQL语句十分复杂,前往单行,了局是1。在中,将前往的result列的一行赋值给用户变量i。
  使用剧本组件赋值变量对照复杂,只必要设置剧本组件的ReadOnlyvariable大概ReadWriteVariable,将变量的称号设置为他们的值(多个变量以逗号分开),它们的区分是前者在剧本组件只可以读,后者能够读写。然后在剧本组件中经由过程
Dts.Variables("i").Value=1
  3、变量的利用
  变量在ssis中利用的中央良多,笔者先容两个典范的使用。
  (1)实行SQL义务组件的参数
  假定声名了一个日期范例变量StartDate,用户必要经由过程从某个表当选择在StartDate日期之前的数据,这个时分必要将StartDate作为参数传给实行SQL义务组件。在实行SQL义务组件输出SQL的中央输出以下命令语句:
SELECT*FROMTABLE_aWHERE日期字段<?
  然后在参数据映照界面新增映照,在变量称号列选择用户变量StartDate,选择范例为DATE,在参数称号列输出给参数取的称号。如许就能够将StartDate变量传给SQL义务组件的SQL语句了。
  (2)在剧本组件中赋值
  能够在剧本组件中经由过程Dts.Variables("i").Value=1体例赋值给变量,也能够经由过程这类体例来利用变量。好比Dts.Variables("other_variable").Value=Dts.Variables("i").Value+1,这个语句是能够在剧本组件中实行的,将i变量加1后赋值给别的一个变量。
用一个库#bak_database存放这些历史数据。

兰色精灵 发表于 2015-1-19 06:50:21

现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.

透明 发表于 2015-1-26 17:10:53

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。

因胸联盟 发表于 2015-2-4 20:32:34

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

海妖 发表于 2015-2-10 07:59:27

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。

深爱那片海 发表于 2015-3-1 05:31:32

大侠们有推荐的书籍和学习方法写下吧。

若天明 发表于 2015-3-10 12:57:46

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

admin 发表于 2015-3-17 07:55:03

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)

老尸 发表于 2015-3-24 03:10:28

光写几个SQL实在叫无知。
页: [1]
查看完整版本: MSSQL网站制作之怎样天真使用SQL Server 2005 SSIS变量...