sql - 使用 insert 和 value 以及子查询插入行

标签 sql sql-server-2008

我非常感谢您的帮助。

我在“Dossiers_CheckList”中有三个表“Dossiers” “检查列表_参数” 我创建了一个插入触发器 有效 当我将行添加到表“Dossiers”时,我想在“Dossiers_CheckList”中插入带有新记录值“Dossiers.id”的行和戴着 critaire 的“Dossiers_CheckList.id” 这是触发器:

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

感谢帮助

最佳答案

您不能同时插入“值”和“选择”,但您可以在 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 

请务必确保触发器能够处理插入多行的情况

关于sql - 使用 insert 和 value 以及子查询插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658919/

相关文章:

python - SQLAlchemy - 如何计算多列的不同

mysql - 如何使用 MySQL 和 C# 控件进行插入

sql - 如何在 MySQL 中按 SUM() 进行排序?

sql - 在后台运行大型查询 MS SQL

sql-server-2008 - 从 View 及其所有相关表中删除记录

sql-server - 计算sql server中值中的空格数

sql - 根据第三列动态选择两列之一

MySQL 如何在使用 Group By 时为不匹配的列分配空值

sql-server - SQL Server 存储过程无法通过 Codesmith 运行

sql - 如何在存储过程中一次插入两个表?