SQL Server 游標語句 聲明/打開/循環(huán)實例
更新時間:2013年04月25日 18:06:49 作者:
游標屬于行級操作 消耗很大 SQL查詢是基于數(shù)據(jù)集的所以一般查詢能有 能用數(shù)據(jù)集 就用數(shù)據(jù)集 別用游標 數(shù)據(jù)量大 是性能殺手
SQL Server游標語句使用方法:
--聲明一個游標
DECLARE MyCursor CURSOR
FOR SELECT TOP 5 FBookName,FBookCoding FROM TBookInfo//定義一個叫MyCursor的游標,存放for select 后的數(shù)據(jù)
--打開一個游標
OPEN MyCursor//即打開這個數(shù)據(jù)集
--循環(huán)一個游標
DECLARE @BookName nvarchar(2000),@BookCoding nvarchar(2000)
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//移動游標指向到第一條數(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)閉游標
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ù)制代碼 代碼如下:
--聲明一個游標
DECLARE MyCursor CURSOR
FOR SELECT TOP 5 FBookName,FBookCoding FROM TBookInfo//定義一個叫MyCursor的游標,存放for select 后的數(shù)據(jù)
--打開一個游標
OPEN MyCursor//即打開這個數(shù)據(jù)集
--循環(huán)一個游標
DECLARE @BookName nvarchar(2000),@BookCoding nvarchar(2000)
FETCH NEXT FROM MyCursor INTO @BookName,@BookCoding//移動游標指向到第一條數(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)閉游標
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

游標屬于行級操作 消耗很大 SQL查詢是基于數(shù)據(jù)集的所以一般查詢能有 能用數(shù)據(jù)集 就用數(shù)據(jù)集 別用游標 數(shù)據(jù)量大 是性能殺手
相關(guān)文章
MSSQL 將截斷字符串或二進制數(shù)據(jù)問題的解決方法
主要原因就是給某個字段賦值時,內(nèi)容大于字段的長度或類型不符造成的2010-10-10
SQL語句實現(xiàn)刪除ACCESS重復(fù)記錄的兩種方法
有兩個意義上的重復(fù)記錄,一是完全重復(fù)的記錄,也即所有字段均重復(fù)的記錄,二是部分關(guān)鍵字段重復(fù)的記錄,比如Name字段重復(fù),而其他字段不一定重復(fù)或都重復(fù)可以忽略。2010-04-04
SQL中l(wèi)imit的用法小結(jié)(一個參數(shù),兩個參數(shù))分頁查詢
Limit通常用于SELECT語句的末尾,用于限制查詢結(jié)果的數(shù)量,這篇文章主要介紹了SQL中l(wèi)imit的用法(一個參數(shù),兩個參數(shù)),分頁查詢,需要的朋友可以參考下2023-12-12
sqlserver數(shù)據(jù)庫導入數(shù)據(jù)操作詳解(圖)
本文主要介紹的是怎么使用Microsoft SQL Server Management Studio導入數(shù)據(jù),大家參考使用吧2014-01-01

