以前一直使用存储过程,但是从没有自己写过一些关于循环语句的存储过程,今天就把我写的一些代码拿出来给大家分享
代码举例:
说明:我这里用到了临时表的功能,通过这个存储过程至少能学到三点知识
1、变量是如何定义的
以下为程序代码:
2、临时表的使用
以下为程序代码:
3、循环的用法
以下为程序代码:
希望能给大家一些启示。
代码举例:
/****** 对象: 存储过程 dbo.get_zb_count 脚本日期: 2007-05-18 15:34:33 ******/ CREATE PROCEDURE get_zb_count_3 @J_JID varchar(50), @S_Area varchar(6000), @K_ID varchar(50), @zb_count int output AS begin declare @i int ---存放循环变量 declare @count int ---存放表的数据记录数 declare @Kh_ID varchar(50)-----存放考核子指标值 declare @total int ------存放count的循环累计 create table #KhStyle(IntID int identity(1,1), StyleID varchar(50)) ---创建临时表 insert into #KhStyle(StyleID) select K_ID from T_Kaoh where J_JID=@J_JID and K_FID=@K_ID --------把查询的子指标记录插入到临时表 select @count = count(1) from #KhStyle ---查询当前临时表的子指标记录 if (@count>0) -------------------------------------------------1---------------------------------- begin set @i = 1 -------变量初始化 set @total = 0 ---累计初始化 while (@i <= @count) -------开始循环 --------------------------------------------2-------------------------- begin select @Kh_ID = StyleID from #KhStyle where intID = @i --循环把临时表的子指标值 给于变量 @Kh_ID select @zb_count=count(*) from v_kh_jg where J_ID=@J_JID and K_ID=@Kh_ID and S_Area in (select * from GetTB(@S_Area)) -----当前子指标所属企业数 if @zb_count = 0 select @zb_count = 1 ---如果没有企业则为1 select @total= @zb_count +@total ---累计 select @i = @i +1 --循环递增 end -------------------------------------------2--------------------------- set @zb_count=@total end ---------------------------------------------1--------------------------------- else set @zb_count=0 drop table #KhStyle---删除临时表 end GO |
说明:我这里用到了临时表的功能,通过这个存储过程至少能学到三点知识
1、变量是如何定义的
以下为程序代码:
declare @intID int declare @varname varchar(100) |
2、临时表的使用
以下为程序代码:
Create Table #StyleTab(intID int identity(1,1),StyleID varchar(50))----创建临时表 请注意格式:#表名(字段名称 类型,字段名称 类型) 比较有用的一个字段就是自动增长的标识性字段的定义 intID int identity(1,1) Drop Table #StyleTab----删除临时表 |
3、循环的用法
以下为程序代码:
一般i通常作为变量 while(i<=5) begin -----代码 end |
希望能给大家一些启示。
来源:https://www.cnblogs.com/lihuimingcn/archive/2008/08/04/1260208.html