SQL帮助插入语句包含的项多于插入列表中的项
我试图在一个表上写一个触发器,但我无法从下面关于匹配计数列表的这些错误中执行此操作。我数数了很多次,都没法解决这个问题SQL帮助插入语句包含的项多于插入列表中的项,sql,sql-server,Sql,Sql Server,我试图在一个表上写一个触发器,但我无法从下面关于匹配计数列表的这些错误中执行此操作。我数数了很多次,都没法解决这个问题 Create Trigger trg_LowSupplyNotify On Item After Insert ,Delete As Begin if exists(select 1 from inserted) Begin Insert Into LowSupplyNotify ( [itemNum], [NumberLeft],
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,15级,状态1,程序trg_LowSupplyNotify,第10行
INSERT语句的select列表包含的项目多于
插入列表。SELECT值的数量必须与
插入列。Msg 121,15级,状态1,程序
trg_LowSupplyNotify,第25行插入语句的选择列表
包含的项多于插入列表中的项。选择值的数目
必须与插入列的数量匹配
错误说明了一切,select语句有5个值,insert定义了3列 值'INSERT',SYSTEM_USER在INSERT语句中没有定义相应的列
您可以添加这两个列,如果您已经定义并且存在于表LowSupplyNotify中,则需要从select语句中删除这两个值“INSERT”,SYSTEM\U USER以消除此错误。wow此帖子确实可以快速回复有需要的人!!!谢谢所以我照你说的做了,删除了它们,我得到了错误消息207,16级,状态1,过程trg_LowSupplyNotify,第19行无效列名“NumberLeft”。Msg 207,16级,状态1,程序trg_LowSupplyNotify,第20行无效列名“ManagerMail”。Msg 207,16级,状态1,程序trg_LowSupplyNotify,第34行无效列名“NumberLeft”。Msg 207,16级,状态1,程序trg_LowSupplyNotify,第35行无效列名“ManagerMail”。