SQL Server 游標(biāo)語句 聲明/打開/循環(huán)實(shí)例
發(fā)布日期:2022-01-03 04:04 | 文章來源:站長之家
SQL Server游標(biāo)語句使用方法:
--聲明一個(gè)游標(biāo)
DECLARE MyCursor CURSOR
FOR SELECT TOP 5 FBookName,FBookCoding FROM TBookInfo//定義一個(gè)叫MyCursor的游標(biāo),存放for select 后的數(shù)據(jù) --打開一個(gè)游標(biāo)
OPEN MyCursor//即打開這個(gè)數(shù)據(jù)集 --循環(huán)一個(gè)游標(biāo)
DECLARE @BookName nvarchar(2000),@BookCoding nvarchar(2000)
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//移動游標(biāo)指向到第一條數(shù)據(jù),提取第一條數(shù)據(jù)存放在變量中
WHILE @@FETCH_STATUS =0//如果上一次操作成功則繼續(xù)循環(huán)
BEGIN
print 'name'+@BookName
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//繼續(xù)提下一行
END --關(guān)閉游標(biāo)
CLOSE MyCursor
--釋放資源
DEALLOCATE MyCursor
eg:
create table #a
(
id varchar(20),
name varchar(20)
)
insert into #a select 1,'jack'
insert into #a select 2,'join'
insert into #a select 3,'make'
declare mycursor cursor
for select * from #a
open mycursor
declare @id varchar(20),@name varchar(20)
fetch next from mycursor into @id,@name
while @@fetch_status=0
begin
select @id,@name
fetch next from mycursor into @id,@name
end
close mycursor
deallocate mycursor

復(fù)制代碼 代碼如下:
--聲明一個(gè)游標(biāo)
DECLARE MyCursor CURSOR
FOR SELECT TOP 5 FBookName,FBookCoding FROM TBookInfo//定義一個(gè)叫MyCursor的游標(biāo),存放for select 后的數(shù)據(jù) --打開一個(gè)游標(biāo)
OPEN MyCursor//即打開這個(gè)數(shù)據(jù)集 --循環(huán)一個(gè)游標(biāo)
DECLARE @BookName nvarchar(2000),@BookCoding nvarchar(2000)
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//移動游標(biāo)指向到第一條數(shù)據(jù),提取第一條數(shù)據(jù)存放在變量中
WHILE @@FETCH_STATUS =0//如果上一次操作成功則繼續(xù)循環(huán)
BEGIN
print 'name'+@BookName
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//繼續(xù)提下一行
END --關(guān)閉游標(biāo)
CLOSE MyCursor
--釋放資源
DEALLOCATE MyCursor
eg:
復(fù)制代碼 代碼如下:
create table #a
(
id varchar(20),
name varchar(20)
)
insert into #a select 1,'jack'
insert into #a select 2,'join'
insert into #a select 3,'make'
declare mycursor cursor
for select * from #a
open mycursor
declare @id varchar(20),@name varchar(20)
fetch next from mycursor into @id,@name
while @@fetch_status=0
begin
select @id,@name
fetch next from mycursor into @id,@name
end
close mycursor
deallocate mycursor

游標(biāo)屬于行級操作 消耗很大 SQL查詢是基于數(shù)據(jù)集的所以一般查詢能有 能用數(shù)據(jù)集 就用數(shù)據(jù)集 別用游標(biāo) 數(shù)據(jù)量大 是性能殺手
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信