1、sql腳本使用表變數遍歷資料示例:
--表變數1 declare @tempTb Table(ID int, Name nvarchar(64)) --表變數2 declare @DtTb Table(ID int, Name nvarchar(64)) insert into @DtTb select top 100 ID,Name from [dbo].[Students] --宣告回圈的變數 declare @ID int; --通過ID回圈 while exists(select ID from @DtTb) begin set rowcount 1; --對整個會話取資料有效,即若以下有查詢陳述句,也是限定只取一條 --select top 1 @ID = ID from @DtTb; --用 top 1 只對此句查詢有效 select @ID = ID from @DtTb; --具體遍歷業務 insert into @tempTb select * from @DtTb where ID=@ID; set rowcount 0; --取消限定 --遍歷完一條一定要刪掉此條,否則死回圈! delete from @DtTb where ID=@ID; end select * from @tempTb;
delete from @tempTb;
2、sql腳本使用臨時表遍歷資料示例:
--臨時表1 create Table #tempTb(ID int, Dbo nvarchar(64)) --臨時表2 create Table #DtTb(ID int, Dbo nvarchar(64)) insert into #DtTb select top 100 ID,Dbo from [AnyImageGuLou02].[grid].[BHosCheckES] --宣告回圈的變數 declare @ID int; --通過ID回圈 while exists(select ID from #DtTb) begin --set rowcount 1; --對整個會話取資料有效,即若以下有查詢陳述句,也是限定只取一條 select top 1 @ID = ID from #DtTb; --用 top 1 只對此句查詢有效 --select @ID = ID from #DtTb; --具體遍歷業務 insert into #tempTb select * from #DtTb where ID=@ID; --set rowcount 0; --取消限定 --遍歷完一條一定要刪掉此條,否則死回圈! delete from #DtTb where ID=@ID; end select * from #tempTb; --select * from #DtTb; --用完記得刪掉臨時表! drop table #tempTb; drop table #DtTb;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/174436.html
標籤:SQL Server
