0

基本的にデータ操作言語 (DML) を使用してレコードをステージング テーブルにコピーする INSERT INTO (select を使用) を実行しており、これを子テーブルにカスケードする必要があります。

すべての子テーブルが親テーブルからステージング テーブルに ID を挿入している問題で、ステージング テーブルの ID 値を使用する必要があります
テーブルは名前とスキーマを除いて同じです

コード

DECLARE @FK_Value

INSERT INTO temp.tbl_staging_parent 
        (value1
        , value2)
SELECT        
        value1
       ,value2                
FROM         
    dbo.tbl_parent
WHERE 
    parent_id = @ParentID


SET @FK_Value = SCOPE_IDENTITY()

-- No Problems thus far
-- Here is the issue

INSERT INTO temp.tbl_staging_child  
        (FK
        , value2)
SELECT        
         value1
        ,value2               
FROM         
    dbo.tbl_child
WHERE 
    FK = @FK_Value

--- 主キーを含めず、PK をコピーしています --- ステージング テーブルの ID を使用するために必要なときに、元のテーブルから

誰かが何らかの意見を持っている場合は、私に知らせてください。

4

2 に答える 2

0
INSERT INTO temp.tbl_staging_child  
        (FK
        , value2)
SELECT        
         value1 -- this should be @FK_Value
        ,value2               
FROM         
    dbo.tbl_child
WHERE 
    FK = @FK_Value -- this should probably be FK = @ParentId
于 2013-10-03T18:27:48.703 に答える