【问题标题】:Changing column from source to column with unique key constraint - SSIS将列从源更改为具有唯一键约束的列 - SSIS
【发布时间】:2015-06-04 08:59:32
【问题描述】:

我是 SSIS 的新手,我正在做小数据迁移。我的目标数据库col1 中有列,该列具有唯一键约束,并且数据位于“xxxx01”-form 中。

我需要做的是将源数据从col2 缩短为四个第一个字符(xxxx),如果第一部分与其他行相同,则将运行号添加到末尾。例如,目标数据看起来像fest01, fest02, fest03, test01,kest01

在我的源表中,source.col2 中具有相同值的行数可能少于 80 行,因此运行数必须至少达到该值。

【问题讨论】:

    标签: sql-server tsql ssis


    【解决方案1】:

    像这样将OLEDB SourceSQL command 添加到您的包中:

    /* sample data */    
    declare @t table (v varchar(50))
    insert @t values('sadasvasv'),('sdfvadvssdv')
    /* the SQL command */    
    SELECT LEFT(v,4)+CAST(ROW_NUMBER() OVER(PARTITION BY LEFT(v,4) ORDER BY v) as varchar(50)) AS col1
    FROM @t
    

    【讨论】:

    • 感谢您的建议!以这种方式测试它,但它不像计划的那样工作。使用此解决方案,它使用 Rownumber 作为运行编号。因此,只有当第一部分相同时(例如 fest1、fest2、fest3 , test1,kest1)
    • @kepak221 在ORDER BY 之前添加PARTITION BY LEFT(col2,4)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多