SSIS 查找,为不匹配输出创建新记录并获取新生成的密钥



我有一个酒店的桌子。

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

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

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

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

例:-

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