我可以在使用SSIS导入时添加标识列吗?

时间:2013-11-19 19:34:45

标签: sql ssis bids

我是SSIS的新手并试图安排一些文本文件的自动导入。使用大量测试数据示例正确解释所有列。但是,我的数据没有可用作主键的标识列。我希望在导入时添加一个将成为标识的列。这可能吗?谢谢。

2 个答案:

答案 0 :(得分:2)

我通过使用标识列和文本文件中的其余字段提前创建数据库表来完成此操作。然后,在SSIS包中将所有文本文件数据字段映射到相应的数据库字段。当数据插入其余字段时,数据库将处理标识字段。

CREATE TABLE table_name
(
   Id [int] IDENTITY(1,1) NOT NULL,
   column_name2, -- From text file field 1
   ...
   column_name3 data_type(size), -- text file field n
);

希望有所帮助。

答案 1 :(得分:0)

如果e的目标表中有一个标识列。 G。在数据流中的OLE目标,SSIS通过省略插入列来处理这个问题,这是想要管理此列本身的数据库引擎所需要的,即。为每个插入的记录生成新的数字。

如果您的意思是为所有导入的记录编号e。 G。从1开始的行号,SSIS中没有直接支持它的数据流组件。但是您可以轻松地将数据流的脚本组件用于添加列row_no,然后使用以下代码(假设C#)作为语言设置:

int rowNo;

public override void PreExecute()
{
    base.PreExecute();
    rowNo = 0;
}

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Row.rowno = ++rowNo;
}