有关存储过程中使用if的问题

51dianying 2001-10-31 10:27:39
主  题:

我想写一个存储过程,流程如下:
有一个表,名字叫A,现在从B表中取的数据去更新A,更新前判断A中是否已经有相同B.id号的记录,如果没有则插入一条,有则取出原来的加上现在要插入的数据.请教高手如何在存储过程中取原有记录,另外还有if的用法.我看了BOL,但一头污水.
...全文
112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingSunSha 2001-10-31
  • 打赏
  • 举报
回复
不就是用两句SQL解决吗?
UPDATE A
SET COL1 = COL1 + (SELECT COL1 FROM B WHERE A.ID=B.ID)
WHERE EXISTS (SELECT 'X' FROM B WHERE A.ID=B.ID)
/

INSERT INTO A
SELECT * FROM B
WHERE NOT EXISTS (SELECT 'X' FROM A WHERE A.ID=B.ID);

用SQL SERVER的语法改一下就行了
progame 2001-10-31
  • 打赏
  • 举报
回复
我以前会用trigger,但现在我倾向于存储过程

"有则取出原来的加上现在要插入的数据"应该是

update b set b.field=b.field+a.field from a,b where b.id=a.id

我猜的,估计是这个意思吧
icevi 2001-10-31
  • 打赏
  • 举报
回复
"有则取出原来的加上现在要插入的数据" 是什么意思?
zhuzhichao 2001-10-31
  • 打赏
  • 举报
回复
我覺得用trigger更加合適一些.
51dianying 2001-10-31
  • 打赏
  • 举报
回复
sqlserver
zhuzhichao 2001-10-31
  • 打赏
  • 举报
回复
嘿嘿,想得一樣.
zhuzhichao 2001-10-31
  • 打赏
  • 举报
回复
What are your DBMS?
KingSunSha 2001-10-31
  • 打赏
  • 举报
回复
什么数据库?
51dianying 2001-10-31
  • 打赏
  • 举报
回复
谢谢啊,我就是不知道用col1啊

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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