游标的小问题

sunhood 2007-05-29 11:29:10
有2个表:table1
Pro_Id Pro_Cost
01 300
02 500
03 1000

table2:
Pro_Id Emp_Name
01 ZZ
02 MM
03 WW

要求用游标检索,当Emp_Name=MM的时候,table1中相应的Pro_Cost数值+2000,并保存。其中Pro_Cost是int.
谢谢大家了
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhood 2007-06-05
  • 打赏
  • 举报
回复
thx 楼上2位。
fengcengwangshi 2007-05-30
  • 打赏
  • 举报
回复
declare @Pro_Id varchar(10)
declare @Emp_Name nvarchar(50)
declare @Value nvarchar(50)
set @Value = 'MM'
declare cur cursor for
select Pro_Id, Emp_Name from Table2
open cur
fetch next from cur into @Pro_Id,@Emp_Name
while @@fetch_status = 0
begin
if @Emp_Name = @Value
Update Table1 set Pro_Cost = Pro_Cost + 2000 where Pro_Id = @Pro_Id
fetch next from cur into @Pro_Id,@Emp_Name
end
close cur
deallocate cur

Ps:@Value可以是你传递的任何值
感觉这种情况下,不需要用游标实现,楼主需要,就贴上
sunhood 2007-05-30
  • 打赏
  • 举报
回复
就是这个意思,但是要用游标实现,不知道怎么写
Andy-W 2007-05-29
  • 打赏
  • 举报
回复
问题模糊。
不知道是否有是:

UPDATE A SET A.Pro_Cost=A.Pro_Cost+2000
FROM table1 AS A INNER JOIN table2 AS B
ON A.Pro_Id=B.Pro_Id AND B.Emp_Name=N'MM'

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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