0

我有一张酒店桌子。

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

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

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

4

1 回答 1

2

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

例子 :-

     Create Procedure 
     (
      column names ,
      @id int 
     ) 
     AS
     BEGIN
     INSERT INTO TableName  VALUES (@col1)
     SELECT @id = SCOPE_IDENTITY()
    END
于 2012-07-07T16:08:03.073 回答