国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Sql Server - SQL Server遍歷表中記錄的2種方法(使用表變量和游標(biāo))

SQL Server遍歷表中記錄的2種方法(使用表變量和游標(biāo))

2019-12-31 15:58MSSQL教程網(wǎng) Sql Server

遍歷表一般都要用到游標(biāo)在SQL Server中可以很容易的用游標(biāo)實(shí)現(xiàn)循環(huán)實(shí)現(xiàn)遍歷表中記錄,本文將介紹使用表變量和游標(biāo)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中表的遍歷,感興趣的朋友可以了解下本文,或許可以幫助到你

SQL Server遍歷表一般都要用到游標(biāo),SQL Server中可以很容易的用游標(biāo)實(shí)現(xiàn)循環(huán),實(shí)現(xiàn)SQL Server遍歷表中記錄。本文將介紹利用使用表變量和游標(biāo)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中表的遍歷。 

表變量來(lái)實(shí)現(xiàn)表的遍歷 
以下代碼中,代碼塊之間的差異已經(jīng)用灰色的背景標(biāo)記。 

復(fù)制代碼代碼如下:


DECLARE @temp TABLE 

[id] INT IDENTITY(1, 1) , 
[Name] VARCHAR(10) 

DECLARE @tempId INT , 
@tempName VARCHAR(10) 
INSERT INTO @temp 
VALUES ( 'a' ) 
INSERT INTO @temp 
VALUES ( 'b' ) 
INSERT INTO @temp 
VALUES ( 'c' ) 
INSERT INTO @temp 
VALUES ( 'd' ) 
INSERT INTO @temp 
VALUES ( 'e' ) 
WHILE EXISTS ( SELECT [id] 
FROM @temp ) 
BEGIN 
SET ROWCOUNT 1 
SELECT @tempId = [id] , 
@tempName = [Name] 
FROM @temp 
SET ROWCOUNT 0 
--delete from @temp where [id] = @tempId 
PRINT 'Name:----' + @tempName 
END 


但是這種方法,必須借助ROWCOUNT。但是使用 SET ROWCOUNT 將可能會(huì)影響 DELETE、INSERT 和 UPDATE 語(yǔ)句。 
所以修改上面WHILE循環(huán),改用TOP來(lái)選出首條記錄。 

復(fù)制代碼代碼如下:


WHILE EXISTS ( SELECT [id] 
FROM @temp ) 
BEGIN 
SELECT TOP 1 
@tempId = [id] , 
@tempName = [Name] 
FROM @temp 
DELETE FROM @temp 
WHERE [id] = @tempId 
SELECT * 
FROM @temp 
EXEC('drop table '+) 
PRINT 'Name:----' + @tempName 
END 


這種方法也存在一個(gè)問(wèn)題,需要將遍歷過(guò)的行刪除,事實(shí)上,我們?cè)趯?shí)際應(yīng)用中可能并不想要遍歷完一行就刪除一行。 
利用游標(biāo)來(lái)遍歷表 
  游標(biāo)是非常邪惡的一種存在,使用游標(biāo)經(jīng)常會(huì)比使用面向集合的方法慢2-3倍,當(dāng)游標(biāo)定義在大數(shù)據(jù)量時(shí),這個(gè)比例還會(huì)增加。如果可能,盡量使用while,子查詢(xún),臨時(shí)表,函數(shù),表變量等來(lái)替代游標(biāo),記住,游標(biāo)永遠(yuǎn)只是你最后無(wú)奈之下的選擇,而不是首選。 

復(fù)制代碼代碼如下:


--定義表變量 
DECLARE @temp TABLE 

[id] INT IDENTITY(1, 1) , 
[Name] VARCHAR(10) 

DECLARE @tempId INT , 
@tempName VARCHAR(10) 
DECLARE test_Cursor CURSOR LOCAL FOR 
SELECT [id],[name] FROM @temp 
--插入數(shù)據(jù)值 
INSERT INTO @temp 
VALUES ( 'a' ) 
INSERT INTO @temp 
VALUES ( 'b' ) 
INSERT INTO @temp 
VALUES ( 'c' ) 
INSERT INTO @temp 
VALUES ( 'd' ) 
INSERT INTO @temp 
VALUES ( 'e' ) 
--打開(kāi)游標(biāo) 
OPEN test_Cursor 
WHILE @@FETCH_STATUS = 0 
BEGIN 
FETCH NEXT FROM test_Cursor INTO @tempId,@tempname 
PRINT 'Name:----' + @tempName 
END 
CLOSE test_Cursor 
DEALLOCATE test_Cursor 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 午夜在线视频 | 久久9色 | 久久久国产一区二区三区 | av在线播放不卡 | 日韩激情网 | 成人福利网站 | 日本久久免费 | 91在线高清| 亚洲精品久久久久国产 | 久久亚洲国产精品 | 国产精品久久久久久久久久ktv | 毛片免费观看视频 | 米奇777超碰欧美日韩亚洲 | 四房婷婷 | 国产精品免费久久久久久久久久中文 | 国语毛片 | 国产精品第一国产精品 | 亚洲精品视频在线免费 | 亚洲欧洲一区二区三区 | 91网站在线看 | 日韩中文一区 | 精品麻豆剧传媒av国产九九九 | 国产精品视频一区二区三区不卡 | 亚洲午夜精品一区二区三区 | 免费观看一级特黄欧美大片 | 97操视频 | 理论影院 | 成人欧美一区二区三区在线播放 | 精品国产黄a∨片高清在线 黄色大片aaaa | 亚洲精品成a人ⅴ香蕉片 | 国产一区二区三区免费在线 | 国产大片在线观看 | 免费大片黄在线观看 | 国产精品一区二区无线 | 欧美日韩三级在线 | 中文字幕一二三区 | 欧美精品一区在线 | 亚洲午夜一区 | 欧美成人免费在线视频 | 亚洲精品片| 日韩在线观看中文字幕 |