我试图在桌面上写一个触发器而我无法通过以下关于匹配计数列表的错误来完成这项工作。我数了很多次,无法解决问题!
Create Trigger trg_LowSupplyNotify
On Item
After Insert ,Delete
As
Begin
if exists(select 1 from inserted)
Begin
Insert Into LowSupplyNotify
(
[itemNum],
[NumberLeft],
[ManagerMail]
)
Select itemNum ,
NumberLeft,
ManagerMail,
'INSERT' ,SYSTEM_USER
from inserted
END
if exists (select 1 from deleted)
Begin
Insert Into LowSupplyNotify
(
itemNum ,
NumberLeft ,
ManagerMail
)
Select itemNum ,
NumberLeft ,
ManagerMail,
'INSERT' ,SYSTEM_USER
from deleted
End
End
Go
错误:
Msg 121,Level 15,State 1,Procedure trg_LowSupplyNotify,Line 10 The INSERT语句的选择列表包含的项目多于 插入列表。 SELECT值的数量必须与数量匹配 INSERT列。消息121,级别15,状态1,程序 trg_LowSupplyNotify,第25行INSERT语句的选择列表 包含的项目多于插入列表。 SELECT值的数量 必须匹配INSERT列的数量。
答案 0 :(得分:6)
错误告诉所有,你的select语句有5个值,插入有3列定义。
值'INSERT' ,SYSTEM_USER
没有在insert语句中定义相应的列。
您要么添加两列(如果已在表LowSupplyNotify
中定义并存在),否则您需要从select语句中删除这两个值('INSERT' ,SYSTEM_USER
)以消除此错误