?
?
好久没有来iteye了,准备离开it行业,算了还是回来
?
最近在看SQL SERVER 游标这节的内容 感觉很有意思,写下来,方便以后我自己看
?
游标简单点就是对数据集合的处理,但是我们有时候只需要处理其中的一行,游标很有用
当然其实也可以用控制流语句来实现
?
?
题目 ?用循环输出表中的某列
一方式:?
use TEST;--测试数据库
?declare @n int = (select MIN(tb.id) from test_tb tb)
?declare @num int = (select max(tb.ID) from?test_tb?tb)
?while(@n<[email protected])
?begin
? select ?tb.id as '主键号', tb.name ?as '列中内容' from?test_tb tb??where [email protected]
? set @n = @n+1 ? ? ?
?end?
?
二方式:?
declare @youbiaoNeiRong varchar(2000)?
declare cur_test1 cursor for
select tb.name ?from?test_tb tb
open cur_test1?
fetch ?cur_test1 ?into @youbiaoNR --- a
while @@FETCH_STATUS=0 ?-- ?b
begin ?
select @youbiaoNR as 姓名
fetch ?cur_test1 ?into @youbiaoNR
end
close cur_test1
-- ? c ?print @youbiaoNR
deallocate cur_test1
-- d ? if [email protected]<>''
-- (d) ? print 0
?
注 ?a ? ?fetch ?表示把 selec 的内容放入 ?@youbiaoNeiRong
? ? ? b ??@@FETCH_STATUS=0 ?是指结果集中的某一行 , 循环中注意 ?每fetch ?一次 行数就+1
? ? ? ? c ? ?close ?是指游标关闭,但是@youbiaoNeiRong中存放的值(内存中)还没有释放
? ? ? ? d ??deallocate? ?是指游标关闭,但是@youbiaoNeiRong中存放的值(内存中)已经释放
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?