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

CREATETRIGGER[dbo].[NewTrigger]ON[dbo].[MA_People_PeopleInfo]AFTERUPDATEASBEGINupdate... 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”

麻烦大家帮忙看看我的哪里出错了
展开
 我来答
zxd9915
2015-11-20 · TA获得超过299个赞
知道小有建树答主
回答量:461
采纳率:50%
帮助的人:213万
展开全部
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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式