求存储过程写法

poloyzhang 2010-06-12 11:24:36
有两个表, 一个是员工表, 有 工号,姓名, 部门名称 (例如: 生产部,管理部)
另一张表 部门表, 字段, 部门名称,部门人数.

要求员工表插入一条新记录时, 部门人数相应部门增加1人.

更新时也一样,当员工更改了部门(例如从生产部调到管理部),则生产部人数减1, 管理部人数加1.

...全文
146 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
理不完的逻辑 2010-06-16
  • 打赏
  • 举报
回复
学习~!帮顶·!
bdx808 2010-06-16
  • 打赏
  • 举报
回复
帮顶一下
poloyzhang 2010-06-16
  • 打赏
  • 举报
回复
存储过程中的条件如何判断? 例如
if ( not 刚插入的工号与aaa表中的工号比对) 为真(即aaa表没有找到了工号)
'' insert into values( @gonghao, ' ','same value')

我是这样写的
select @gonghao = select 工号 from inserted
if( not @gonghao=(Select 工号 from aaa) )
insert into aaa values( @gonghao, ...............)
lantingxiaosheng 2010-06-16
  • 打赏
  • 举报
回复
同意10楼的说法,部门人数是一个多余的字段。
  • 打赏
  • 举报
回复
帮顶一下
九斤半 2010-06-15
  • 打赏
  • 举报
回复
其实"部门表"中是不需要"部门人数"这个字段的。
poloyzhang 2010-06-15
  • 打赏
  • 举报
回复
不错,我也写了个触发器, 多个分支是怎么写的? if......if ....?
还是while /where 条件判断等等.还是case 等等.
我写的是if () ...... if().... 是否还有其它方法.
king_wen 2010-06-12
  • 打赏
  • 举报
回复
静静地我飘过了~~~
lijavasy 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuye6569 的回复:]
是不是用触发器更好一点?
[/Quote]
liuye6569 2010-06-12
  • 打赏
  • 举报
回复
creat trigger on 员工表
after insert
as
begin
declear @员工部门 nvarchar(20),@部门人数 int
set @员工部门 = select 部门名称 from inserted(就是刚刚插入的那条数据的部门字段)
set @部门人数 = select 部门人数 from 部门表 where 部门名称 = @员工部门
updata 部门表 set 部门人数 = @部门人数+1 where 部门名称 = @员工部门
end
这是插入时出发的触发器
teerhu 2010-06-12
  • 打赏
  • 举报
回复
用触发器
或自己用事務作處理嘍

示例:

begin transaction
begin try
insert into employee values(....);
update department set eCount=eCount+1 where ...
commit transaction
end try
begin catch
rollback transaction
end catch

poloyzhang 2010-06-12
  • 打赏
  • 举报
回复
求代码.需要在c#中以后调用 .
liuye6569 2010-06-12
  • 打赏
  • 举报
回复
是不是用触发器更好一点?
nevergu 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 teerhu 的回复:]
用触发器
或自己用事務作處理嘍

示例:

SQL code

begin transaction
begin try
insert into employee values(....);
update department set eCount=eCount+1 where ...
commit transaction
end try
begi……
[/Quote]

正解 触发器有风险 是用须谨慎
rcy5211314 2010-06-12
  • 打赏
  • 举报
回复
一楼的说法很正确,触发器就可以实现了,用不到什么存储过程

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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