MSSQL 游標使用例項

2021-09-05 19:36:36 字數 3450 閱讀 4132

declare

mycursor 

cursor

forselect

iglidenum,saccflag,a.sdeptno,saccman,ent_mobil,daccdate,dsfinishdate 

from

eg_shl_accept 

asa,eg_sys_entry 

ase 

where

saccman

=ent_name 

andsaccflag 

like

'____x[3,4,5]

'open

mycursor

declare

@iglidenum

varchar(20

)declare

@saccflag

varchar(6

)declare

@sdeptno

varchar(20

)declare

@saccman

varchar(10

)declare

@ent_mobil

varchar(20

)declare

@daccdate

datetime

declare

@dsfinishdate

datetime

fetch

next

from

mycursor 

into

@iglidenum

,@saccflag

,@sdeptno

,@saccman

,@ent_mobil

,@daccdate

,@dsfinishdate

while

(@@fetch_status=0

)begin

declare

@iovertime

intdeclare

@nowdate

datetime

select

top1

@iovertime

=iovertime 

from

eg_sys_param

select

@nowdate

=getdate

();if

cast

(convert

(varchar(10

),@nowdate

,120

) as

datetime

)>

@dsfinishdate

andcast

(convert

(varchar(10

),@dsfinishdate

,120

) as

datetime

)<

(cast

(convert

(varchar(10

),@nowdate

,120

) as

datetime)+

@iovertime

)begin

if@dsfinishdate

+@iovertime

<

cast

(convert

(varchar(10

),@nowdate

,120

) as

datetime

)begin

insert

into

eg_db_warninginfo(iglidenum,swarnnode,swarntype,swarntext,swarnman,swarnobject,swarncategory,sdeptno,swarnway) 

values

(@iglidenum

,@saccflag,1

,'你受理的專案('+

@iglidenum+'

)結辦日期為'+

convert

(varchar(10

),@dsfinishdate

,120)+

',現已超過超期警告辦理時間,給予一張紅牌警告,請盡快辦理。',

'自動',

@saccman,0

,@sdeptno,0

)insert

into

eg_db_warningback(swarntext,swarnmolormail,swarntpyes) 

values('

你受理的專案('+

@iglidenum+'

)結辦日期為'+

convert

(varchar(10

),@dsfinishdate

,120)+

',現已超過超期警告辦理時間,給予一張紅牌警告,請盡快辦理。',

@ent_mobil,0

)end

else

begin

insert

into

eg_db_warninginfo(iglidenum,swarnnode,swarntype,swarntext,swarnman,swarnobject,swarncategory,sdeptno,swarnway) 

values

(@iglidenum

,@saccflag,0

,'你受理的專案('+

@iglidenum+'

)結辦日期為'+

convert

(varchar(10

),@dsfinishdate

,120)+

',現已超期,給予一張黃牌警告,請盡快辦理。',

'自動',

@saccman,0

,@sdeptno,0

)insert

into

eg_db_warningback(swarntext,swarnmolormail,swarntpyes) 

values('

你受理的專案('+

@iglidenum+'

)結辦日期為'+

convert

(varchar(10

),@dsfinishdate

,120)+

',現已超期,給予一張黃牌警告,請盡快辦理。',

@ent_mobil,0

)end

endfetch

next

from

mycursor 

into

@iglidenum

,@saccflag

,@sdeptno

,@saccman

,@ent_mobil

,@daccdate

,@dsfinishdate

endclose

mycursor

deallocate

mycursor

MSSQL 游標的使用

與windows或dos的 游標 不同,ms sql的游標是一種臨時的資料庫物件,既對可用來旋轉儲存在系統永久表中的資料行的副本,也可以指向儲存在系統永久表中的資料行的指標。游標為您提供了在逐行的基礎上而不是一次處理整個結果集為基礎的操作表中資料的方法。1 如何使用游標 1 定義游標語句 decla...

MSSQL 游標使用 心得

游標為您提供了在逐行的基礎上而不是一次處理整個結果集為基礎的操作表中資料的方法。1 如何使用游標 1 定義游標語句 declare 游標名 cursor for 2 建立游標語句 open 游標名 3 提取游標列值 移動記錄指標 fetch 列名列表 from 游標名 into 變數列表 4 使用 ...

MS SQL游標的使用及理解

與windows或dos的 游標 不同,ms sql的游標是一種臨時的資料庫物件,既對可用來旋轉儲存在系統永久表中的資料行的副本,也可以指向儲存在系統永久表中的資料行的指標。游標為您提供了在逐行的基礎上而不是一次處理整個結果集為基礎的操作表中資料的方法。1 如何使用游標 1 定義游標語句 decla...