sql 儲存過程裡的if else while

2022-03-20 10:31:35 字數 1679 閱讀 5295

一: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

goset quoted_identifier on

gocreate

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

endelse

if@flag=1

begin

set@workhour

=28800

set@signstatus=0

endbegin

--獲取記錄條數

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

endend

SQL 儲存過程裡呼叫另乙個儲存過程

由於建立了乙個儲存過程,並且要在另乙個儲存過程裡呼叫這個儲存過程所以在網上找了一下相關的 現在總結一下,防止以後還會用到 由於這次我寫的儲存過程只需要返回乙個求和的結果,所以我使用了output 引數,即執行了儲存過程以後返回乙個值 具體 如下 create procedure dbo t1 tes...

SQL裡在過程過程裡建立表

儲存過程已經存在就刪除了再建立 if exists select name from sysobjects where name create table chats and type p drop procedure create table chats go 建立儲存過程 create proc...

SQL的儲存過程

儲存過程可以改變sql語句的執行效能,提高執行效率 還可以作為一種安全機制,使使用者通過它來訪問未被授權的表和檢視。儲存過程包括的建立 執行 檢視 修改和刪除 概念 儲存過程是一組預先編譯好的transact sql語句。儲存過程為標準sql增加了幾種功能,這些功能正是sql語句所缺少的,增加的功能...