在同一个数据库一张表的修改,同步到另一张表

ww7433574 2011-06-21 12:26:55
比如说在 (员工信息表) 和 (员工工资表) 里面 原本张三的性别是 男 现在在(员工信息表)改成女后 ,(员工工资表)里面张三的性别还是男, 要怎么实现同步 ,谢谢 求代码 触发器没学 ,学了简单的存储过程
...全文
398 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2011-06-21
  • 打赏
  • 举报
回复
你可以在存储过程中先改员工信息表,接着立即再改员工资表.
也可以用触发器修改:
create table 员工信息表(id int,姓名 nvarchar(10),性别 nvarchar(1))
create table 员工工资表(id int,姓名 nvarchar(10),性别 nvarchar(1),工资 int)--不管其他列
insert into 员工信息表 select 1,'张三','男'
insert into 员工工资表 select 1,'张三','男',3000
go
create trigger setygxb
on 员工信息表
for update
as
update a set 性别=b.性别 from 员工工资表 a inner join inserted b on a.id=b.id
go
update 员工信息表 set 性别='女' where 姓名='张三'
select * from 员工工资表
/*
id 姓名 性别 工资
----------- ---------- ---- -----------
1 张三 女 3000

(1 行受影响)

*/
go
drop table 员工工资表,员工信息表
--小F-- 2011-06-21
  • 打赏
  • 举报
回复
如果有外键 还可以使用级联删除 这个直接去查查 

一般是可以使用触发器

create trigger my_tri on 员工信息表
for update
as
update a set 性别=b.性别 from 员工工资表 a inner join inserted b on a.id=b.id
go
update 员工信息表 set 性别='女' where 姓名='张三'
老潘 2011-06-21
  • 打赏
  • 举报
回复
1.触发器
2.存储过程里面同步更新
3.在 性别 列上建立外键,启用级联更新
cd731107 2011-06-21
  • 打赏
  • 举报
回复
(员工信息表) 和 (员工工资表)通过id关联
1.修改员工信息表中张三的性别
update 员工信息表 set 性别='女' where name='张三'
2.继续修改员工工资表中张三的性别
update 员工工资表 set 性别='女'
from 员工信息表 where 员工信息表.id=员工工资表.id
and 员工信息表.name='张三'

或者如一楼晴天老大那样弄个触发器,员工信息表更新后,
触发器自动更新员工工资表中的相应信息
Lyongt 2011-06-21
  • 打赏
  • 举报
回复
1.可以用触发器实现,楼上的已经回答了;
2.这个是表设计上的问题,如果系统还没有开发,可以改成员工信息表的员工ID和员工工资表的员工ID外键关联,去掉员工工资表中的冗余字段性别

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧