您好,我有一个名为
的表PERSO_DATA(Id,refPerso,,Col1,Col2,Col3,Col4,Col5)
我有
PERSO_DATA_QUEUE(Id,refPersoData,refVideo)
首先,我将数据插入PERSO_DATA
,然后我将获取插入数据的Id并将其作为refPersoData插入到另一个表中。
INSERT INTO PERSO_DATA(refPerso,Col1,Col2,Col3,Col4,Col5)
SELECT @refPerso,pa.Col1,pa.Col2,pa.Col3,pa.Col4,pa.Col5 FROM #PERSODATA pa
SET @refPersoData=SCOPE_IDENTITY()
当我这样写的时候,我会插入所有数据,但不能为每个数据取得ID
INSERT INTO PERSO_DATA_QUEUE(refVideoQueue,refPersoData)
SELECT @refVideoQueue,@refPersoData
所以上面的代码只添加一个。但是如果我有10个数据要插入PERSO_DATA
我还需要插入PERSO_DATA_QUEUE
表10数据和插入的ID。
我该怎么做?我无法找到解决方案。
提前致谢
答案 0 :(得分:1)
试试这段代码:
CREATE TABLE #temp ([Id] [bigint] NOT NULL);
INSERT INTO PERSO_DATA(refPerso,Col1,Col2,Col3,Col4,Col5)
OUTPUT INSERTED.Id
INTO #temp (Id)
SELECT @refPerso,pa.Col1,pa.Col2,pa.Col3,pa.Col4,pa.Col5
FROM #PERSODATA pa;
INSERT INTO PERSO_DATA_QUEUE(refVideoQueue,refPersoData)
SELECT @refVideoQueue, Id
FROM #temp;
答案 1 :(得分:-1)
解决方案可能是将游标或循环与任何迭代器(如临时表中的ROW_NUMBER())组合在一起。 然后 - 在其中使用SCOPE_IDENTITY()来获取创建的IDENTITY值。