在SQL SER2K 中这样的功能怎么在存储过程中实现?是不是要用到记录集啊?

笨魚 2002-09-17 10:14:03
在SQL SER2K 中这样的功能怎么在存储过程中实现?是不是要用到记录集啊?

表AAA

字段 A、B、C、D、E

由于刚刚接触SQL SER2K的存储过程,对一些基本的概念还不清楚,希望各位高手给指点一下:

原来这些功能我是在脚本(ASP或PHP)里实现的,但由于数据量越来越大,脚本超时,我改用
存储过程来实现。现在有一些基本的问题:

1、我知道如果,我想把从数据库里选出的一条记录的一个字段的值付给一个变量我可以这么写

set @var = select a from AAA where a='123456'

如果 我的SQL语句是这样的 select a,b,c from AAA where b='999' and a='123456'
此时,我想把字段c的值付给 @var_c ,不知道这条语句该怎么写?(此时,得到的是一条记录)

2、如果我的SQL语句得到不只1条记录,而是一个集合,比如是10条记录,此时,我又该怎么得到
每一条记录中的某一字段的值呢?

比如:select * from AAA where c='147' and e='258' 得到 10条记录

我想输出其中的某个字段

while(条件){

print '字段B=' @var_b

}
--------------------------------------------
结果:
字段B= 1
字段B= 2
字段B= 3
.
.
.
字段B= 9
字段B= 10

---------------------------------------------

不知道这样的功能能不能在SQL SER2K的存储过程里实现?如果能,怎么实现,请指教!谢谢!


...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨魚 2002-09-18
  • 打赏
  • 举报
回复
comicgirl() :

你说的对,是要用到游标的,我昨天晚上,也发现了,但还没试,由于以前没用过,还在摸索!:)

先谢谢 comicgirl() 啦! :)
comicgirl 2002-09-17
  • 打赏
  • 举报
回复
select a,b,@var_c =c from AAA where b='999' and a='123456'

用游标
declare mycur cursor
for
select * from AAA where c='147' and e='258'

open mycur

fetch next from mycur
while @@fetch_status=0
fetch next from mucur
Yang_ 2002-09-17
  • 打赏
  • 举报
回复
1、首先set @var = select a from AAA where a='123456'是不对的,应该:
select @var = a from AAA where a='123456'
或者
set @var = (select a from AAA where a='123456')

多个可以:
select @a=a,@b=b,@c=c from AAA where b='999' and a='123456'

2、没明白你的说法,好像把存储过程和界面的放在一起说了。
应该是用select * from AAA where c='147' and e='258' 返回记录集,在客户端处理。


34,594

社区成员

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

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