关于使用sql server 2008触发器完成修改一张表里一个字段同时修改另一张表的另一字段

CREATETRIGGERUpdateTableonUser_SampleafterupdateASBEGINdeclare@userTypeint--得到更改的字段值s... CREATE TRIGGER UpdateTable
on User_Sample
after update
AS BEGIN
declare @userType int
--得到更改的字段值
set @userType='2'
--得到表1和表2关联的id,也就是外键,table2的ID
declare @userId int

set @userId = (select userId FROM User_Sample )
-- 更新表2 "
update Users set Usertype=@userType where Users.userId =@userId
END
GO
UPDATE [User_Sample] SET [state] = 'True' WHERE [id] = '2'
((select userId FROM User_Sample 获取的是多个值,求有办法至获取修改的那个字段的id莫?
展开
 我来答
baiynijecym
2012-12-11 · TA获得超过1841个赞
知道大有可为答主
回答量:1411
采纳率:66%
帮助的人:1166万
展开全部
触发器中有两个临时表inserted 和deleted
这两个表的表结构与创建触发器的表是一样的
inserted存储的是新插入或更新后的最新资料
deleted存储的是删除的或修改前的资料。
你可以通过inserted表来获得你更新后的值,然后再用这个值来更新另外的那个表,如不清楚可再追问。
szm341
2012-12-11 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5156万
展开全部
不需要@userid变量,触发器中可以用inserted与deleted来获取修改删除前的数据
update Users set Usertype=@userType where Users.userId in
(select userid from deleted)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式