程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> T-SQL 循環表的一種方式,t-sql循環表

T-SQL 循環表的一種方式,t-sql循環表

編輯:關於.NET

T-SQL 循環表的一種方式,t-sql循環表


原文來自: 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.整個循環結束後刪除臨時表

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved