2017-05-25 55 views
0

我需要在表2中爲Table1中的每行插入Table1中的行。對從SCOPE_IDENTITY()中選取的每一行執行插入操作

此外,我需要插入表1中的每個新插入的行插入記錄Id插入新行。

我的腳本如下:

DECLARE @Id INT; 

BEGIN TRAN 

BEGIN TRY 

INSERT INTO dbo.Table1(UN_ID, AT_ID, AA_SUM, AA_START_DATE, AA_END_DATE, WR_ID) 
SELECT 
    116,   
    3,   
    100,   
    '20170501', 
    '20170601', 
    WR_ID  
FROM Table2 


SELECT @Id = SCOPE_IDENTITY() 
INSERT INTO dbo.Table3 VALUES (@Id, 10) 

COMMIT TRAN 

END TRY 
BEGIN CATCH 
    ROLLBACK TRAN 
END CATCH 

但這個劇本只插入一排表3。

如何在Table1中插入Table1中每個新插入的行?

編輯:表1具有自動遞增的主鍵ID。這個ID應該被插入到Table3中。

回答

1

這可以通過使用如以下在此之前,輸出宣告子句具有相同的結構表的表變量來完成3.

declare @tbl3 table(id int) 

INSERT INTO dbo.Table1(UN_ID, AT_ID, AA_SUM, AA_START_DATE, AA_END_DATE, WR_ID) 
output Inserted.ID into @tbl3 
SELECT 
    116,   
    3,   
    100,   
    '20170501', 
    '20170601', 
    WR_ID  
FROM Table2 

insert into dbo.table3 
select id,10 from @tbl3