我有一个酒店的桌子。
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