資料庫游標結合臨時表的使用

2021-04-20 09:16:10 字數 1207 閱讀 8982

一、建立臨時表定義相關的變數:

create table #temptable      --建立臨時表

(maintradecode int,

subtradecode int,

subtradename varchar(50)

)declare @keyword varchar(200)

declare @searchcount int

二、建立游標:

declare keywordcur cursor local for

select top 8 count(*) as searchcount,keyword

from keywordbysearch

where infotype='sell'

group by keywordbysearch.keyword

order by searchcount desc

三、開啟游標獲得資料並往臨時表中插入資料:

open keywordcur

fetch next from keywordcur into @searchcount,@keyword

while @@fetch_status=0

begin

insert into #temptable

select top 1 sd.tradecode as maintradecode,subtrade as subtradecode,

(select subtrades.tradename from subtrades where subtrades.tradecode=sd.subtrade) as subtradename

from supplydemand sd

where keywords like '%'+ @keyword +'%'

order by sd.sdid desc

fetch next from keywordcur into @searchcount,@keyword

end

四、刪除游標、返回臨時表資料和刪除臨時表:

close keywordcur

deallocate keywordcur

select * from #temptable

drop table #temptable

由於游標比較耗效能,在大量資料的場合不太適合使用游標.

可用同樣的方法操作游標和使用者表

資料庫臨時表

建立方法 方法一 createtable temptablename 或select 欄位1,欄位2,into temptablename from table 方法二 createtable tempdb mytemptable tidint 說明 1 臨時表其實是放在資料庫tempdb裡的乙個使...

資料庫表(臨時表)

oracle中的段 segment 是占用磁碟上儲存空間的乙個物件。儘管有多種型別,不過最常見的段型別如下 q 聚簇 cluster 這種段型別能儲存表。有兩種型別的聚簇 b 樹聚簇和雜湊聚簇。聚簇通常用於儲存多個表上的相關資料,將其 預聯結 儲存到同乙個資料庫塊上 還可以用於儲存乙個表的相關資訊。...

資料庫建立臨時表

表名前使用乙個 號,臨時表是區域性的,使用兩個 號,臨時表是全域性的,在斷開連線後sql會自動刪除臨時表 create table a id int,name varchar 50 insert into a id,name values 1,123 select from a drop table...