我要从临时表中插入表
SELECT * FROM 'raw_data' WHERE CONTAINS ('date', "42")>0
现在我将这个临时表记录插入到另一个表COM(这个表已经标识为COM_ID的IDENTITY)
SELECT D.ID,D.NAME,D.VALUE,T.TOM_ID
* INTO #TEMP_TBL
FROM DOM D INNER JOIN TOM T
ON D.ID =T.ID
现在我的要求是我需要插入记录标识值(com_id)和
必须参考其他表
INSERT INTO COM
(
ID,NAME,VALUE
)
FROM SELECT ID ,NAME, VALUE FROM #TEMP_TBL
每个表中都插入了多条记录。如何找到插入的标识列并将其分配给其他表。
答案 0 :(得分:0)
表COM
中的行必须由com_id
之外的其他内容唯一标识,或者您必须愿意订购它们并处理重复。根据该自然键从COM
中选择:
select com_id from COM where name = ? -- or similar
从根本上说,你的问题是,我如何在一行的列中获取值?有一种诱惑,认为有一种神奇的方法可以找到{{1的生成值插入行中的列,但在SQL中没有魔法,只有逻辑。要获得值,您必须选择它。
答案 1 :(得分:0)
希望这有帮助。
SELECT Id, Com_Id, Name, Tom_ID FROM #TEMP_TBL temp INNER JOIN COM C ON C.ID = TBL.ID