【问题标题】:SSIS Lookup, create new records for no-match output and get newly generated keysSSIS查找,为不匹配的输出创建新记录并获取新生成的密钥
【发布时间】:2012-07-07 17:21:11
【问题描述】:

我有一张酒店桌子。

 create table DimHotel
 (
  Hotel_ID int Identity(1, 1),
  HotelName nvarchar(max)
 ) 

现在我得到一些作为HotelNames 的提要,现在我们的业务逻辑是使用Hotel_ID 作为现有的HotelName,并为新的HotelName 创建新记录并使用新生成的Hotel_ID。现在我明白我可以将“查找不匹配输出”定向到 OLE DB 命令转换,然后我如何获得新生成的密钥。 一种选择是在 DimHotel 表上再查找一次(我想这很愚蠢,扫描一张表两次)。我们还有什么其他选择。

我可以使用 but Merge 语句,但我们的 ETL 团队希望避免手动编码。

【问题讨论】:

    标签: sql-server ssis lookup etl dataflow


    【解决方案1】:

    我认为最好使用检索 SCOPE_IDENTITY 作为输出参数的存储过程。

    示例:-

         Create Procedure 
         (
          column names ,
          @id int 
         ) 
         AS
         BEGIN
         INSERT INTO TableName  VALUES (@col1)
         SELECT @id = SCOPE_IDENTITY()
        END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多