sql server存儲(chǔ)過(guò)程的條件判斷和事務(wù)管理的實(shí)例
下面為您介紹一個(gè)sql server存儲(chǔ)過(guò)程的條件判斷和事務(wù)管理的實(shí)際例子,供您參考,如果您對(duì)sql server存儲(chǔ)過(guò)程感興趣的話(huà),不妨一看。
通過(guò)sql server存儲(chǔ)過(guò)程周期性地根據(jù)條件字段值設(shè)置其他字段,包括條件判斷和事務(wù)管理。實(shí)例語(yǔ)句如下。
數(shù)據(jù)庫(kù)表(vipPoint)定義語(yǔ)句如下:
- CREATE TABLE [dbo].[vipPoint] (
- [userCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
- [point] [int] NOT NULL ,
- [currentStatus] [int] NOT NULL ,
- [baseStatus] [int] NOT NULL
- ) ON [PRIMARY]
- GO
sql server存儲(chǔ)過(guò)程語(yǔ)句如下:
- CREATE procedure vipProcess
- as
- begin
- if (MONTH(getdate())=7)
- begin
- begin transaction
- update vipPoint set currentStatus=1 where baseStatus=1 and point>1000
- update vipPoint set currentStatus=0 where baseStatus=1 and point<1000
- update vipPoint set currentStatus=1 where baseStatus=0 and point>1500
- update vipPoint set currentStatus=0 where baseStatus=0 and point<1500
- /**//**update vipPoint set point=0**/
- update vipPoint set point=10000000000000000000000000000
- if (@@error<>0)
- begin
- print('rollback transaction')
- rollback transaction
- return 0;
- end;
- commit transaction
- end;
- end;
- GO
sql server存儲(chǔ)過(guò)程語(yǔ)句也可以如下:
- CREATE procedure vipProcess
- as
- begin
- if (MONTH(getdate())=7)
- begin
- begin transaction
- update vipPoint set currentStatus=case when point>=1000 then 1 when point<1000 then 0 end where baseStatus=1
- update vipPoint set currentStatus=case when point>=1500 then 1 when point<1500 then 0 end where baseStatus=0
- /**//**update vipPoint set point=0**/
- update vipPoint set point=10000000000000000000000000000
- if (@@error<>0)
- begin
- print('rollback transaction')
- rollback transaction
- return 0;
- end;
- commit transaction
- end;
- end;
- GO
【編輯推薦】



















