CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

SSIS中如何产生自增长数

作者: Jackie,  出处:IT专家网, 责任编辑: 李书琴, 
2008-03-06 16:10
  在一个表中,为某个特定的列设置identity值可以使该列获得一个自增长的整数。在T-SQL中,我们也可以使用名为ROW_NUMBER()的函数来做到这点。在SQL Server报告服务(SSIS)中,我们也可以使用函数RowNumber(Nothing)来实现这个功能

  【IT专家网独家】我们都知道,在一个表中,为某个特定的列设置identity值可以使该列获得一个自增长的整数。在T-SQL中,我们也可以使用名为ROW_NUMBER()的函数来做到这点。在SQL Server报告服务(SSIS)中,我们也可以使用函数RowNumber(Nothing)来实现这个功能,那具体怎么做呢?

  与前面提到的产品不同的是,在SSIS中没有实现该功能的函数。但我们可以利用SSIS的脚本组件实现它。具体步骤如下:

  1.将脚本组件拖拽到数据流,并将脚本组件的类型设置为Transformation。

  2.双击脚本组件。

  3. 在输入列标签中,选择你想要加载脚本组件的列。

  4.在输入输出标签中,增加一个数据类型为整型的列(在下图所示的列子中,我添加了一个“列名”列)  

图一

  5.接下来,选择脚本标签,点击脚本设计按钮,在脚本编辑器中输入如下的脚本:

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

Public Class ScriptMain
    Inherits UserComponent

    Dim intCounter As Integer = 0 'Set intial value here
    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
         Row.Column = intCounter
         intCounter = intCounter + 1   ' Set the incremental value here
    End Sub
End Class

  在上面的脚本中,我们可以设置初始值以及自增长的步长。在上例中,这两者都被设置为1。

  6.下图是该脚本的输出。途中,名为“Column”的列是由脚本组件产生的字增加字段。 

图二

 

  IT专家网原创文章,未经许可,严禁转载!

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2007, ChinaByte
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i