使用insert和values以及子查询插入行

时间:2013-10-29 12:59:22

标签: sql sql-server-2008

我真的很感激你的帮助。

我在“Dossiers_CheckList”中有三个表“档案” “CheckList_Parms” 我创建了一个插入triger有效 当我将行添加到表“Dossiers”时,我想在“Dossiers_CheckList”中插入带有值“Dossiers.id”的新记录和“Dossiers_CheckList.id”的评论表 这是triger:

BEGIN
 declare @id1 int
 select @id1=id from inserted

insert into Dossiers_CheckList
(DOS_id ,CheckListParm_id)
VALUES 
(@id1
,
(SELECT CheckListParms.id
 from CheckListParms
 where CheckListParms.DOC_IS_OBLIG=1
 )
)

END

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您不能同时插入'values'和'Select',但您可以在select语句中引用您的变量。

BEGIN
 declare @id1 int
 select @id1=id from inserted

insert into Dossiers_CheckList
(DOS_id ,CheckListParm_id)

SELECT @id1,CheckListParms.id
 from CheckListParms
 where CheckListParms.DOC_IS_OBLIG=1



END 

请注意确保触发器处理插入多行的情况