【问题标题】:SSIS - insert data/ID into another table while importingSSIS - 导入时将数据/ID插入另一个表
【发布时间】:2014-09-05 16:14:32
【问题描述】:

我正在使用 SQL Server / SSIS 2005,但我对一些我认为应该是一个简单问题的事情感到困惑。我试图弄清楚如何从 SSIS 项目中创建的增量 ID 将数据插入另一个表。

为了帮助澄清,有我的例子:

我有一个名为 users 的表,其中包含以下值(为此目的缩短了)

User ID    Username
=======    ========
   1        jsmith
   2        jjones

我有另一个名为 userpreferences 的表,其中包含以下值

 ID           Keyname         Keyvalue 
=======      ===========     =========
  1          Send a Report    YES
  2          Send a Report    YES

现在我已经描述了这些表,我将使用 SSIS 将数据插入到用户表中。用户 ID 是用户表中的标识字段。 ID 也是 userspreferences 表中的一个身份字段。它们彼此对应。

我想做的是根据用户表中生成的用户 ID 将数据插入到用户首选项表中。例如,我通过 import as user ID #3 插入一条记录。然后我想将该 ID 插入用户首选项表并插入键名和键值。澄清一下,键名和键值不是文本文件的一部分。我想将它们插入到项目中。

目前,我可以通过 T-SQL 进行一些“后处理”来实现我的目标。但我试图在 SSIS 中更有效地做到这一点。另外,这对我很有帮助,因为我经常这样做。

我尝试对此进行研究,我认为这可能对我有所帮助:SSIS - Multiple table insert。但是,该解决方案缺少屏幕截图。有人可以帮助我完成这项任务。我将不胜感激。

【问题讨论】:

    标签: sql-server-2005 ssis


    【解决方案1】:

    您可以在您的用户表上启用身份插入,并使用 VB 脚本组件转换手动生成 ID,这样您就可以在数据流中将它们加载到用户首选项表中。不过,后处理可能是您最好的选择 - 只需构建一个 Execute SQL 任务以在数据流完成后运行,它仍然是您包的一部分。

    【讨论】:

    • 感谢您的回复。你是对的,后处理更容易。不过我有一个问题要问你。如果我添加一个执行 SQL 任务,我将如何获取我已经导入的所有 ID?或者你是说我需要在导入之前计算一下然后把它放在那里?
    • 我在想你有某种逻辑,可以根据你正在加载的用户记录中的一些数据来计算在首选项表上放什么?难道你不能在加载后执行一条 SQL 语句来对这个表进行基于集合的插入吗?
    猜你喜欢
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多