经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
SqlServer使用表变量或临时表遍历数据
来源:cnblogs  作者:沙奇码丶  时间:2020/11/9 15:56:04  对本文有异议

1、sql脚本使用表变量遍历数据示例:

  1. --表变量1
  2. declare @tempTb Table(ID int, Name nvarchar(64))
  3. --表变量2
  4. declare @DtTb Table(ID int, Name nvarchar(64))
  5. insert into @DtTb select top 100 ID,Name from [dbo].[Students]
  6. --声明循环的变量
  7. declare @ID int;
  8. --通过ID循环
  9. while exists(select ID from @DtTb)
  10. begin
  11. set rowcount 1; --对整个会话取数据有效,即若以下有查询语句,也是限定只取一条
  12. --select top 1 @ID = ID from @DtTb; --用 top 1 只对此句查询有效
  13. select @ID = ID from @DtTb;
  14. --具体遍历业务
  15. insert into @tempTb select * from @DtTb where ID=@ID;
  16. set rowcount 0; --取消限定
  17. --遍历完一条一定要删掉此条,否则死循环!
  18. delete from @DtTb where ID=@ID;
  19. end
  20. select * from @tempTb;
    delete
    from @tempTb;

 

2、sql脚本使用临时表遍历数据示例:

  1. --临时表1
  2. create Table #tempTb(ID int, Dbo nvarchar(64))
  3. --临时表2
  4. create Table #DtTb(ID int, Dbo nvarchar(64))
  5. insert into #DtTb select top 100 ID,Dbo from [AnyImageGuLou02].[grid].[BHosCheckES]
  6. --声明循环的变量
  7. declare @ID int;
  8. --通过ID循环
  9. while exists(select ID from #DtTb)
  10. begin
  11. --set rowcount 1; --对整个会话取数据有效,即若以下有查询语句,也是限定只取一条
  12. select top 1 @ID = ID from #DtTb; --用 top 1 只对此句查询有效
  13. --select @ID = ID from #DtTb;
  14. --具体遍历业务
  15. insert into #tempTb select * from #DtTb where ID=@ID;
  16. --set rowcount 0; --取消限定
  17. --遍历完一条一定要删掉此条,否则死循环!
  18. delete from #DtTb where ID=@ID;
  19. end
  20. select * from #tempTb;
  21. --select * from #DtTb;
  22. --用完记得删掉临时表!
  23. drop table #tempTb;
  24. drop table #DtTb;

 

原文链接:http://www.cnblogs.com/seanyan/p/13824732.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号