SQL SERVER 中几种遍历表的方法
来源:互联网 发布:马天宇知乎 编辑:程序博客网 时间:2024/06/06 02:05
</pre>建表语句:</h3><div><pre name="code" class="sql">CREATE TABLE BlogType ( ID int identity(1,1) primary key, TypeName varchar(50) )
提供数据:
insert into BlogType (TypeName) values ('.Net'),('Java'),('PHP'),('Python'),('Object-c'),('SQL'),('C'),('C++');
使用游标:
--游标遍历 DECLARE @typeName varchar(50); DECLARE type_cursor CURSOR FOR SELECT TypeName FROM BlogType; OPEN type_cursor FETCH NEXT FROM type_cursor INTO @typeName WHILE(@@FETCH_STATUS=0) BEGIN PRINT @typeName; FETCH NEXT FROM type_cursor INTO @typeName END CLOSE type_cursor DEALLOCATE type_cursor;
模仿for循环的表变量
--模仿for循环的表变量DECLARE @pointer INT;DECLARE @rowCount INT;DECLARE @typeName VARCHAR(50)DECLARE @t TABLE( RowNumber INT, TypeName VARCHAR(50));INSERT @t ( RowNumber, TypeName )SELECT RowNumber=ROW_NUMBER() OVER (ORDER BY bt.TypeName), bt.TypeName FROM BlogType bt WITH(NOLOCK) SELECT @rowCount= COUNT(1) FROM @t;SET @pointer=1;WHILE(@pointer<=@rowCount)BEGIN SELECT @typeName=TypeName FROM @t WHERE RowNumber=@pointer ; PRINT @typeName; SET @pointer=@pointer+1;END
使用表变量删除式遍历
--使用表变量删除式遍历DECLARE @typeName VARCHAR(50)DECLARE @t TABLE( TypeName VARCHAR(50));INSERT @t ( TypeName)SELECT TypeName FROM BlogType bt WITH(NOLOCK) WHILE EXISTS (SELECT TOP 1 * FROM @t)BEGIN SELECT TOP 1 @typeName=TypeName FROM @t; PRINT @typeName; DELETE FROM @t WHERE TypeName=@typeName;END
使用临时表删除式遍历
--使用临时表删除式遍历DECLARE @typeName VARCHAR(50);SELECT TypeName INTO #t FROM BlogType bt WITH(NOLOCK);WHILE EXISTS (SELECT TOP 1 * FROM #t)BEGIN SELECT TOP 1 @typeName=TypeName FROM #t; PRINT @typeName; DELETE FROM #t WHERE TypeName=@typeName;ENDDROP TABLE #t;
insert into BlogType (TypeName) values ('.Net'),('Java'),('PHP'),('Python'),('Object-c'),('SQL'),('C'),('C++');
使用游标:
--游标遍历 DECLARE @typeName varchar(50); DECLARE type_cursor CURSOR FOR SELECT TypeName FROM BlogType; OPEN type_cursor FETCH NEXT FROM type_cursor INTO @typeName WHILE(@@FETCH_STATUS=0) BEGIN PRINT @typeName; FETCH NEXT FROM type_cursor INTO @typeName END CLOSE type_cursor DEALLOCATE type_cursor;
模仿for循环的表变量
--模仿for循环的表变量DECLARE @pointer INT;DECLARE @rowCount INT;DECLARE @typeName VARCHAR(50)DECLARE @t TABLE( RowNumber INT, TypeName VARCHAR(50));INSERT @t ( RowNumber, TypeName )SELECT RowNumber=ROW_NUMBER() OVER (ORDER BY bt.TypeName), bt.TypeName FROM BlogType bt WITH(NOLOCK) SELECT @rowCount= COUNT(1) FROM @t;SET @pointer=1;WHILE(@pointer<=@rowCount)BEGIN SELECT @typeName=TypeName FROM @t WHERE RowNumber=@pointer ; PRINT @typeName; SET @pointer=@pointer+1;END
使用表变量删除式遍历
--使用表变量删除式遍历DECLARE @typeName VARCHAR(50)DECLARE @t TABLE( TypeName VARCHAR(50));INSERT @t ( TypeName)SELECT TypeName FROM BlogType bt WITH(NOLOCK) WHILE EXISTS (SELECT TOP 1 * FROM @t)BEGIN SELECT TOP 1 @typeName=TypeName FROM @t; PRINT @typeName; DELETE FROM @t WHERE TypeName=@typeName;END
使用临时表删除式遍历
--使用临时表删除式遍历DECLARE @typeName VARCHAR(50);SELECT TypeName INTO #t FROM BlogType bt WITH(NOLOCK);WHILE EXISTS (SELECT TOP 1 * FROM #t)BEGIN SELECT TOP 1 @typeName=TypeName FROM #t; PRINT @typeName; DELETE FROM #t WHERE TypeName=@typeName;ENDDROP TABLE #t;
2 0
- SQL SERVER 中几种遍历表的方法
- SQl SERVER 2000 遍历表中数据的方法
- SQl SERVER 2000 遍历表中数据的方法
- SQL Server遍历表的几种方法
- SQL Server遍历表的几种方法
- SQL Server遍历表的几种方法
- SQL Server遍历表的几种方法
- [转]遍历(ACCESS/SQL SERVER)数据库数据库表的方法
- Sql Server创建内存表的方法
- 移植SQL SERVER的方法
- SQL Server优化的方法
- 移植SQL SERVER的方法
- SQL Server 顯示行號的方法:
- SQL server 带走的方法
- SQL Server优化的方法
- SQL SERVER游标遍历对象
- Delphi遍历局域网内所有的Sql Server服务器
- SQL Server 中几种分页方法的再测试
- Study《去掉HTML中Inline-Block元素之间的空白》
- NodeJs启动项目报错listen EADDRINUSE :::6666
- Google Guava 库用法整理
- 128.Hash Function-哈希函数(容易题)
- 选择排序
- SQL SERVER 中几种遍历表的方法
- git 版本控制 之 分支合并
- Coreseek、Sphinx-for-chinaese、Sphinx+Scws区别
- ibdata1的坑货是怎么来的
- Java80商城系统第四节-商品分类和商品后台管理
- 《纠结学习C++还是Java》之《如何学好C++》
- TJI读书笔记09-访问控制权限
- 安卓常用的设计模式略解(1)
- 前端样式库