数据库游标结合临时表的使用
2008-09-28 11:35
169 查看
一、创建临时表定义相关的变量:
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
由于游标比较耗性能,在大量数据的场合不太适合使用游标.
可用同样的方法操作游标和用户表
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
由于游标比较耗性能,在大量数据的场合不太适合使用游标.
可用同样的方法操作游标和用户表
相关文章推荐
- 关于在存储过程中使用游标操作数据库
- 用XML作为数据库 ,结合XPath使用
- 简介Lua脚本与Redis数据库的结合使用
- 数据库游标使用大全
- 使用servlet结合ajax验证数据库中是否存在某条记录
- mysql 存储过程示例,有参有返回值,使用到了判断,循环,游标,临时表,事务
- 数据库之【游标使用详解篇】
- 关于sql server动态获取数据库下所有表以及游标的简单使用
- 【SQL】使用游标进行不同数据库的…
- Lucene基础(四)-- 结合数据库使用
- 各种数据库临时表的使用区别总结
- 使用SQLiteDataBase 关闭游标关闭数据库及NullPointer问题总结
- 使用递归算法结合数据库解析成java树形结构
- 结合使用接口和 ODI 约束开发 ODI XML 到数据库的转换
- sql自定义函数与游标的结合使用
- android listview综合使用演示样例_结合数据库操作和listitem单击长按等事件处理
- Oracle 10g数据库游标的使用学习三(实践)
- xtree使用 结合ajax操作数据库
- 数据库游标的使用
- 数据库中游标的使用.....用于循环