SQL Server遍历表中记录的2种方法(使用表变量和游标)
--定义表变量
利用游标来遍历表
BEGIN
DEALLOCATE test_Cursor
)
WHILE EXISTS ( SELECT [id]
FROM @temp
@tempName = [Name]
@tempName VARCHAR(10)
--插入数据值
INSERT INTO @temp
END
BEGIN
VALUES ( 'e' )
@tempName = [Name]
PRINT 'Name:----' + @tempName
VALUES ( 'e' )
FETCH NEXT FROM test_Cursor INTO @tempId,@tempname
--delete from @temp where [id] = @tempId
OPEN test_Cursor
CLOSE test_Cursor
[id] INT IDENTITY(1, 1) ,
VALUES ( 'a' )
[Name] VARCHAR(10)
[id] INT IDENTITY(1, 1) ,
INSERT INTO @temp
--打开游标
SET ROWCOUNT 1
DECLARE test_Cursor CURSOR LOCAL FOR
这种方法也存在一个问题,需要将遍历过的行删除,事实上,我们在实际应用中可能并不想要遍历完一行就删除一行。
DECLARE @tempId INT ,
END
SELECT @tempId = [id] ,
VALUES ( 'b' )
INSERT INTO @temp
SELECT TOP 1
DELETE FROM @temp
INSERT INTO @temp
PRINT 'Name:----' + @tempName
游标是非常邪恶的一种存在,使用游标经常会比使用面向集合的方法慢2-3倍,当游标定义在大数据量时,这个比例还会增加。如果可能,尽量使用while,子查询,临时表,函数,表变量等来替代游标,记住,游标永远只是你最后无奈之下的选择,而不是首选。
WHILE EXISTS ( SELECT [id]
PRINT 'Name:----' + @tempName
SET ROWCOUNT 0
WHILE @@FETCH_STATUS = 0
FROM @temp
FROM @temp )
INSERT INTO @temp
INSERT INTO @temp
DECLARE @tempId INT ,
@tempId = [id] ,
SELECT *
复制代码 代码如下:
INSERT INTO @temp[Name] VARCHAR(10)
INSERT INTO @temp
VALUES ( 'd' )
VALUES ( 'a' )
BEGIN
EXEC('drop table '+)
FROM @temp )
INSERT INTO @temp
VALUES ( 'b' )
@tempName VARCHAR(10)
WHERE [id] = @tempId
SELECT [id],[name] FROM @temp
FROM @temp
所以修改上面WHILE循环,改用TOP来选出首条记录。
VALUES ( 'c' )
(
)
以下代码中,代码块之间的差异已经用灰色的背景标记。
复制代码 代码如下:
表变量来实现表的遍历但是这种方法,必须借助ROWCOUNT。但是使用 SET ROWCOUNT 将可能会影响 DELETE、INSERT 和 UPDATE 语句。
END
VALUES ( 'd' )
(
复制代码 代码如下:
INSERT INTO @tempSQL Server遍历表一般都要用到游标,SQL Server中可以很容易的用游标实现循环,实现SQL Server遍历表中记录。本文将介绍利用使用表变量和游标实现数据库中表的遍历。
DECLARE @temp TABLE
VALUES ( 'c' )
相关热词: 方法
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/mssql/2908.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
sql server 关于设置null的一
时间:2020-12-28
-
详解SQL游标的用法
时间:2020-12-27
-
vs code连接sql server数据库步
时间:2020-12-27
-
图书管理系统的sqlserver数
时间:2020-12-25
-
详解SQL 通配符
时间:2020-12-25
-
sql四大排名函数之ROW_NUM
时间:2020-12-25
-
SQLServer数据库处于恢复挂
时间:2020-12-24
-
Win10 64位安装个人版SQL20
时间:2020-12-24
热门文章
-
sqlserver中查询横表变竖表的sql语句简析
时间:2020-12-08
-
关于SQL Server查询语句的使用
时间:2020-12-13
-
SQL Server简单模式下误删除堆表记录恢复方
时间:2020-12-12
-
MSSQL教程_mssql数据库教程_MSSQL基础教程_第
时间:2020-12-13
-
详解SQL游标的用法
时间:2020-12-27
-
sql server 关于设置null的一些建议
时间:2020-12-28
-
jdbc连接sql server数据库问题分析
时间:2020-12-10
-
mssql关于一个表格结构的另外一种显示(表
时间:2020-12-11
-
SQL Server数据库入门学习总结
时间:2020-12-10
-
使用SqlBulkCopy时应注意Sqlserver表中使用缺
时间:2020-12-09
