使用SELECT插入INTO

时间:2013-10-03 18:15:06

标签: sql sql-server-2008 tsql

我正在执行INSERT INTO(使用select)基本上使用Data Manimpulation Languague(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 ---当我需要它时,从原始表中使用临时表的标识

如果有人有任何意见,请告诉我。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

dbcc checkident('tables',reseed,0)

抱歉所有的桌子都必须重新种植。当我创建临时表时,他们保持身份值。