【SQL Server学习笔记】T-SQL中的流程控制、游标
2012-08-09 09:49
615 查看
1、流控制
2、游标
--一直到11:07:00才运行 --waitfor time '11:07:00' declare @temp table(schematable varchar(100)) declare @tablename varchar(100) insert into @temp (schematable) select s.name + '.' + t.name from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id where t.type_desc = 'User_table' --while循环结构 while (select COUNT(*) from @temp ) > 0 begin select top (1) @tablename = schematable from @temp exec sp_spaceused @tablename; --输出当前数据库中每个表的空间使用情况 delete from @temp where schematable = @tablename --if-else分支结构 if( (select COUNT(*) from @temp)=0 ) begin --延迟10秒 waitfor delay '00:00:10' exec sp_spaceused; --输出当前数据库的空间使用情况 break; end else begin continue; end end
2、游标
set nocount on declare @session_id smallint --1.定义游标 declare session_cur cursor local --作用范围:局部游标(LOCAL,GLOBAL) forward_only --滚动方式:向前(FORWARD_ONLY,SCROLL) fast_forward --获取数据方式:快速向前(STATIC,KEYSET,DYNAMIC,FAST_FORWARD) read_only --只读 (READ_ONLY,SCROLL_LOCKS,OPTIMISTIC) for select session_id from sys.dm_exec_requests where status in ('runnable','sleeping','running') and session_id >50 --2.打开游标 open session_cur --3.取下一条 fetch next from session_cur into @session_id --4.开始循环 while @@FETCH_STATUS = 0 begin print 'spid #:' + str(@session_id); exec('dbcc outputbuffer(' + @session_id + ')') ; fetch next from session_cur into @session_id end close session_cur --5.关闭游标 deallocate session_cur --6.释放游标占用的资源
相关文章推荐
- 【SQL Server学习笔记】T-SQL中的流程控制、游标
- Oracle 学习笔记 15 -- PL/SQL基本语法、流程控制
- PL/SQL学习笔记_01_基础:变量、流程控制
- PL/SQL学习笔记[5]-流程控制语句
- T-SQL学习笔记-程序设计基础-流程控制语句
- SQL学习笔记9 流程控制 权限操作
- Java学习笔记001——学前准备、数据类型、运算符、流程控制语句
- 【Java学习笔记】流程控制与数组
- Bash学习笔记(4)----流程控制与函数
- Python学习笔记(四)——运算符与流程控制
- Python编程入门-第四章 流程控制 -学习笔记
- [Java编程思想-学习笔记]第4章 控制执行流程
- 黑马程序员——Swift学习笔记:流程控制
- 【原】Java学习笔记005 - 流程控制
- Java学习笔记(三)-- 流程控制
- 学习笔记 Java_毕向东_语言基础_程序流程控制 2014.7.29
- JavaScript学习笔记 - 进阶篇(3)- 流程控制语句
- 学习笔记 Java_毕向东_流程控制语句_函数_数组 2014.7.30
- PL/SQL学习笔记之游标
- jBPM-jPDL学习笔记——流程设计与控制