0

我正在执行 INSERT INTO(带有选择)基本上使用数据操作语言(DML)将记录处理到临时表,然后这必须级联到子表。

问题所有子表都将父表中的标识插入到暂存表中,我希望他们使用暂存表的标识值
表除了名称和架构外是相同的

编码

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 --- 当我需要它使用临时表的身份时从原始表中复制

如果有人有一些意见,请告诉我。

4

2 回答 2

0

dbcc checkident('表',重新种子,0)

抱歉,所有表都必须重新播种。当我创建临时表时,他们保留了身份值。

于 2013-10-03T18:55:18.600 回答
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 回答