sql 存储过程里的if else while

一:if  else 

   语法: if 条件 begin 执行的操作 end else begin 执行的操作 end

二:while

  语法:while 条件 begin 执行操作 end

 

实例:

USE [OABusiness]
GO
/****** 对象:  StoredProcedure [dbo].[inertdate]    脚本日期: 08/31/2012 15:30:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[inertdate]
(
     @date  datetime , --插入的日期
     @flag  int --判定插入的数据
)
AS
begin
declare @count int;--用户记录条数
set @count=null;
declare @count_add int ;--计数
set @count_add=1;
declare @Userid int ;--用户Userid
set @Userid =NUll;
declare @WorkHour int ;--插入的时间
declare @SignStatus int ;--状态
end
if @flag=0
begin
set @WorkHour=0
set @SignStatus=1
end 
else if @flag=1
begin
set @WorkHour=28800
set @SignStatus=0
end
begin
--获取记录条数
select @count=count(*) from dbo.T_UserInfo where Away_YN !=1
--循环插入记录
while @count_add<@count+1 
begin
select @Userid=UserID from 
( select row_number() over(order by UserID asc) as num,UserID,Away_YN from dbo.T_UserInfo where Away_YN !=1) as tem 
where num=@count_add

insert into dbo.T_SigninStatistics (UserID,SignDate,WorkHour,SignStatus) values(@Userid,@date,@WorkHour,@SignStatus)
set @count_add=@count_add+1 
end
end
posted @ 2012-09-02 14:01  偶不是大叔  阅读(41514)  评论(0编辑  收藏  举报