sql 建立触发器 无法绑定由多个部分组成的标识符old.id

CREATE TRIGGER [dbo].[NewTrigger]
ON [dbo].[MA_People_PeopleInfo]
AFTER UPDATE
AS
BEGIN
update MA_People_PeopleInfo set name=new.name where CardID=old.id;
update MA_User_UserInfo set BindName=new.name where BindCardID = old.id;
END
GO
描述:
两张表“MA_People_PeopleInfo”和“MA_User_UserInfo”
两张表的共同处为MA_People_PeopleInfo.CardID = MA_User_UserInfo.BindCardID
建立这个触发器就是为了,修改MA_People_PeopleInfo.name的同时修改MA_User_UserInfo.BindName
但是建立完这个触发器之后,保存时提示:“sql 42000 建立触发器 无法绑定由多个部分组成的标识符old.id”

麻烦大家帮忙看看我的哪里出错了

old.id没有定义。
应该是:
declare @oldid int
---仅考虑1条记录更新的情况,多条一次更新恐怕需要遍历
set @oldid = (select top 1 cardid from deleted)
然后update MA_People_PeopleInfo set name=new.name where CardID=@oldid;

温馨提示:答案为网友推荐,仅供参考
相似回答