T-SQL 循环表的一种方式
2024-08-27 05:46:21
原文来自:https://www.lesg.cn/netdaima/sqlservert-sql/2016-463.html
SsqlServer 中循环表有几种方式
1.临时表
2.游标
3….
下面就来说说怎么用临时表格来循环数据
create table t( id int not null primary key identity(1,1), dt datetime not null default(getdate()), name varchar(100) not null default('') )
--测试案例,给表插入数据
declare @count int ;set @count=0;
while(@count<100)
begin
set @count= @count+1
insert into t (name) values (NEWID())
end
select * from t
--判断临时表是否存在 如果存在则删除临时表
if exists(select 1 from tempdb..sysobjects where id=object_id('tempdb..#t_m'))
begin
drop table #t_m --删除临时表
end
--将数据插入临时表
select * into #t_m from t
--开始循环表数据 declare @tmid int ; -- 创建一个临时变量
While (exists ( select 1 from #t_m))
BEGIN
select top 1 @tmid =id from #t_m --拿出一条数据复制在临时变量里面, 用于待会删除该数据使用
--
/*
好了 在这里使用 @tmid 来操作 该条数据吧
lesg.cn
*/
--
DELETE #t_m WHERE ID=@tmid; --删除一条临时表的数据
END
if exists(select 1 from tempdb..sysobjects where id=object_id('tempdb..#t_m'))
begin
drop table #t_m --操作结束后删除临时表
end
思路如下;
1.创建临时表格
2.while 循环临时表; 循环条件是 临时表是否存在
3. 获取一条临时表的数据; 记得使用top 1 否则数据一多起来性能低到你发疯 获得临时变量,临时变量等于该条数据的ID
select
top
1 @tmid =id
from
#t_m
4.使用临时变量来操作数据
5.整个循环结束后删除临时表
最新文章
- The Myths about Transactions (ACID) and NoSQL
- ios h5 app avalon tap点击事件失效及点击延迟300ms问题解决方法
- 配置https
- My Env
- CSS3与页面布局学习总结——Box Model、边距折叠、内联与块标签、CSSReset
- centos修改hostname以及时间同步
- Microsoft Office 2013 Product Key
- Sublime 编译出来的是 dos格式,不是unix格式
- JavaScript面试问题:事件委托和this
- [Locked] Range Sum Query 2D - Mutable
- MongoDB源码分析——mongo与JavaScript交互
- Unslider – 轻量的响应式 jQuery 内容轮播插件
- uva10067 Playing with Wheels 【建图+最短路】
- Character Encoding in .NET
- 本地连接虚拟机 Oracle数据库 报ORA-12541:TNS:no listener
- openstack swift节点安装手册3-最后的安装配置及验证
- SpringBoot -- 计划任务
- [LeetCode] 88. Merge Sorted Array_Easy tag: Two Pointers
- Linux内核跟踪之ring buffer的实现【转】
- Easing圆环动画