SQL中的游标在处理一些需要循环处理的逻辑时很有用处,但是由于使用频率相对较低,经常会忘记使用方法,每用一次就要Google一次,很有挫败感。于是下定决心要记在脑海了,于是就想到编写一个顺口溜“口诀”。
游标原理
游标原理可以概括为将SQL查询结果填入Cursor类型,Cursor类型可以看成是一个临时表。然后通过循环一条一条的读到变量中进行中处理。
游标使用的“口诀”
声明cursor要靠for
for的后面是SQL
定义好后要open
然后变量来存储
先从(from)cursor取(fetch)一个
取后装到变量里
while循环来帮忙
逻辑要在whlie里
用完一个下一个
@@fetch_status来截止
用完之后要关闭
关闭之后要清除
按口诀编写示例
--声明对应declare,注意cursor变量不带@
declare cs_demo cursor for
--for后面放查询语句,根据具体需要自由发挥
select id,[name] from master.dbo.sysobjects where [type]='U'
--定义完成打开cursor
open cs_demo
--定义变量才存储:用几个字段就查询几个字段,相应定义几个变量
declare @ID int,@Name varchar(100)
--取第一个
fetch next from cs_demo into @ID,@Name
--循环遍历处理逻辑
while @@fetch_status=0
begin
--这里是具体处理逻辑
print str(@ID)+ '->' + @Name
--用完一个下一个
fetch next from cs_demo into @ID,@Name
end
--关闭和销毁
close cs_demo
deallocate cs_demo
版权声明:本文为ETZRP原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。