34,838
社区成员




----借5楼数据
create table dep
(
id int identity(1,1) not null,
code int,
depName nvarchar(50)
)
create table emp
(
id int identity(1,1) not null,
empName char(10),
depName nvarchar(50)
)
insert dep select 11,'AA'
insert dep select 22,'BB'
insert dep select 33,'CC'
insert emp select 'aa','AA'
insert emp select 'bb','BB'
insert emp select 'cc','CC'
alter trigger update_emp_dep on dep
for update
as
begin
update emp set depname=i.depname from emp a,inserted i,deleted d
where a.depname=d.depname
end
update dep set depname='dd'
select * from emp
select * from dep
create trigger update_trigger
on 职称代码表
for update
as
begin
if(update(职称代码))
update 员工表 set 员工表.职称代码=职称代码表.职称代码
end
create table dep
(
id int identity(1,1) not null,
code int,
depName nvarchar(50)
)
create table emp
(
id int identity(1,1) not null,
empName char(10),
depName nvarchar(50)
)
insert dep select 11,'AA'
insert dep select 22,'BB'
insert dep select 33,'CC'
insert emp select 'aa','AA'
insert emp select 'bb','BB'
insert emp select 'cc','CC'
go
create trigger tri_dep_name
on dep
for update
as
begin
update a
set depName=b.newDepName
from emp a
right join (select newdepname = i.depname,oldname = d.depname
from inserted i inner join deleted d on i.code = d.code) b
on b.oldname = a.depname
end
go
select * from dep
select * from emp
update dep set depName='DD' where depName='AA'
select * from dep
select * from emp
drop table dep,emp
/*
id code depName
----------- ----------- --------------------------------------------------
1 11 AA
2 22 BB
3 33 CC
(所影响的行数为 3 行)
id empName depName
----------- ---------- --------------------------------------------------
1 aa AA
2 bb BB
3 cc CC
(所影响的行数为 3 行)
(所影响的行数为 1 行)
id code depName
----------- ----------- --------------------------------------------------
1 11 DD
2 22 BB
3 33 CC
(所影响的行数为 3 行)
id empName depName
----------- ---------- --------------------------------------------------
1 aa DD
2 bb BB
3 cc CC
(所影响的行数为 3 行)
*/
create table dep
(
id int identity(1,1) not null,
code int,
depName nvarchar(50)
)
create table emp
(
id int identity(1,1) not null,
empName char(10),
depName nvarchar(50)
)
insert dep select 11,'AA'
insert dep select 22,'BB'
insert dep select 33,'CC'
insert emp select 'aa','AA'
insert emp select 'bb','BB'
insert emp select 'cc','CC'
go
create trigger tri_dep_name
on dep
for update
as
begin
declare @DepName nvarchar(50),@newDepName nvarchar(50)
select @DepName=depName from deleted
select @newDepName=depName from inserted
update a
set depName=b.newDepName
from emp a
right join (select newdepname = i.depname,oldname = d.depname
from inserted i inner join deleted d on i.code = d.code) b
on b.oldname = a.depname
end
go
select * from dep
select * from emp
update dep set depName='DD' where depName='AA'
select * from dep
select * from emp
drop table dep,emp
/*
id code depName
----------- ----------- --------------------------------------------------
1 11 AA
2 22 BB
3 33 CC
(所影响的行数为 3 行)
id empName depName
----------- ---------- --------------------------------------------------
1 aa AA
2 bb BB
3 cc CC
(所影响的行数为 3 行)
(所影响的行数为 1 行)
id code depName
----------- ----------- --------------------------------------------------
1 11 DD
2 22 BB
3 33 CC
(所影响的行数为 3 行)
id empName depName
----------- ---------- --------------------------------------------------
1 aa DD
2 bb BB
3 cc CC
(所影响的行数为 3 行)
*/
create table dep
(
id int identity(1,1) not null,
code int,
depName nvarchar(50)
)
create table emp
(
id int identity(1,1) not null,
empName char(10),
depName nvarchar(50)
)
insert dep select 11,'AA'
insert dep select 22,'BB'
insert dep select 33,'CC'
insert emp select 'aa','AA'
insert emp select 'bb','BB'
insert emp select 'cc','CC'
create trigger tri_dep_name
on dep
for update
as
begin
declare @DepName nvarchar(50),@newDepName nvarchar(50)
select @DepName=depName from deleted
select @newDepName=depName from inserted
update emp set depName=@newDepName where depName=@DepName
end
select * from dep
select * from emp
update dep set depName='DD' where depName='AA'
select * from dep
select * from emp
create trigger
ON 职称代码表
FOR UPDATE
if UPDATE(职称代码)
update 员工表 set 职称代码=i.职称代码 from 员工表 inner join deleted d
ON d.职称代码=员工表.职称代码
inner join
inserted i
on I.职称名称=员工表.职称名称
---职称名称没有重复的写法
create trigger
ON 职称代码表
FOR UPDATE
if UPDATE(职称代码)
update 员工表 set 职称代码=i.职称代码 from 员工表 inner join Inserted I
ON I.职称名称=员工表.职称名称