0

ホテルのテーブルがあります。

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

今、私はいくつかのフィードを取得します。これHotelNamesで、ビジネスロジックはHotel_ID既存のHotelNameに使用され、HotelNameに新しいレコードを作成します。これは、新しく生成されたHotel_IDを使用します。これで、「Lookup NoMatchOutput」をOLEDBコマンド変換に送信できることを理解しましたが、次に、新しく生成されたキーを取得する方法を理解しました。1つのオプションは、DimHotelテーブルでもう一度ルックアップを実行することです(これはばかげていると思います。テーブルを2回スキャンします)。他にどのようなオプションがありますか。

私は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 に答える