sql server存儲過程的條件判斷和事務管理的實例
作者:佚名
sql server存儲過程根據條件字段值設置其他字段,其中包括條件判斷和事務管理,下面就為您介紹一個這方面的例子,供您參考。
下面為您介紹一個sql server存儲過程的條件判斷和事務管理的實際例子,供您參考,如果您對sql server存儲過程感興趣的話,不妨一看。
通過sql server存儲過程周期性地根據條件字段值設置其他字段,包括條件判斷和事務管理。實例語句如下。
數據庫表(vipPoint)定義語句如下:
- 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存儲過程語句如下:
- 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存儲過程語句也可以如下:
- 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
【編輯推薦】
責任編輯:段燃
來源:
互聯(lián)網