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

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莫?

触发器中有两个临时表inserted 和deleted
这两个表的表结构与创建触发器的表是一样的
inserted存储的是新插入或更新后的最新资料
deleted存储的是删除的或修改前的资料。
你可以通过inserted表来获得你更新后的值,然后再用这个值来更新另外的那个表,如不清楚可再追问。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-11
不需要@userid变量,触发器中可以用inserted与deleted来获取修改删除前的数据
update Users set Usertype=@userType where Users.userId in
(select userid from deleted)

关于使用sql server 2008触发器完成修改一张表里一个字段同时修改另一张...
你可以通过inserted表来获得你更新后的值,然后再用这个值来更新另外的那个表,如不清楚可再追问。

sqlserver2008要使一个表内数据发生变化 另一表也跟着发生变换 应该...
这种会随时变化的数据在设计表的时候应该考虑作为一个单独的实体表,然后在其他表里面用外键关联

SQL Server2008 触发器中,根据一个表修改另外一个表
alter trigger tri_test on A for insert as begin if not exists(select * from inserted , b where inserted.id = b.id and inserted.aa = b.ba)begin update b set bb = inserted.aa from inserted where inserted.id = b.id end end ...

SQL Server 2008 同一表下同一事件有两个触发器,其中一个对另一个产生...
你把这两个触发器写在一个触发器里面吧 alter trigger new_delete on H_K_B for delete as insert into tbl_new select deleted.id,deleted.x,deleted.k_id from deleted left join D on D.x=deleted.x and D.k_id=deleted.k_id where D.sf=1 declare @x varchar(20),@id varchar(2...

...向sql server 2008两张表同时插入数据,一张表的主键是另外一张表...
两种方式,根据不同的情况来处理:1、直接写两条SQL语句,各自针对不同的表 2、在主要上创建一个触发器,当向主表添加数据时,自动向另外一张表添加值

使用SQL修改一个表另一表也修改
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。等等。这时候可以用到触发器。对于1,创建一个Update触发器:Create Trigger truStudent On Student --在Student表中创建触发...

SQL Server 怎么用存触发器实现从一个表里查询数据,然后插入到另一个...
insert MyUser values('123','123',1)insert MyUser values('admin','123456',2)insert MyUser values('1234','1234',1)insert MyUser values('administrator','123',2) 追问 假如被插入的是部分字段呢?就是就是从一个表中选一个字段插入到另一个表中,但被插入的其它字段还不能为空 本回答由网友...

sql server2008,同一数据库里的两张不同的表怎么实现同步?
更新 create trigger up_table on aaa for update as if update(a1)or update(a2)begin update t2 set b1=t1.a1,b2=t1.a2 from inserted t1,bbb t2 where t1.aid=t2.bid end 插入 create trigger in_table on aaa for insert as insert into bbb(b1,b2)select a1,a2 from inserted end...

sql server 2008数据库里如何实现按规则自动补全某个字段
使用触发器。假定表名称为mytable,字段名称为idc。创建如下触发器:CREATE TRIGGER [myTRIGGER] ON [dbo].[mytable]FOR INSERT AS DECLARE @IDD VARCHAR(8)DECLARE @ID INT SET @ID=(SELECT id FROM inserted)SET @IDD = 'IC' + RIGHT('000000' + CONVERT(VARCHAR, @ID),6)UPDATE [my...

触发器插入数据时修改当前插入的字段值sql server 2008
create Trigger table_InsertTrigger on 表 for insert as if exists(select * from inserted )begin update 表 set c=a+b from 表 t where exists(select * from inserted i where i.a=t.a)end

相似回答