SSIS查找,为不匹配的输出创建新记录并获取新生成的密钥
Posted
技术标签:
【中文标题】SSIS查找,为不匹配的输出创建新记录并获取新生成的密钥【英文标题】:SSIS Lookup, create new records for no-match output and get newly generated keys 【发布时间】: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 团队希望避免手动编码。
【问题讨论】:
【参考方案1】:我认为最好使用检索 SCOPE_IDENTITY 作为输出参数的存储过程。
示例:-
Create Procedure
(
column names ,
@id int
)
AS
BEGIN
INSERT INTO TableName VALUES (@col1)
SELECT @id = SCOPE_IDENTITY()
END
【讨论】:
以上是关于SSIS查找,为不匹配的输出创建新记录并获取新生成的密钥的主要内容,如果未能解决你的问题,请参考以下文章