存儲過程中的事務處理
来源:互联网 发布:58淘宝模特兼职可信吗 编辑:程序博客网 时间:2024/05/18 01:19
以下是一個存儲過程范例:
CREATE PROCEDURE dbo.PrSave_Repairing
@returnMessage nvarchar(50) output,
@LRR nvarchar(30),
@SN nvarchar(30),
@LOCATION nvarchar(50),
@OPERATION nvarchar(100),
@DUTY nvarchar(2),
@RESULT nvarchar(2),
@REMARKS nvarchar(100),
@USERID nvarchar(10),
@STATION nvarchar(20),
@PCNAME nvarchar(20),
@ROUTIN nvarchar(20),
@FAILCODE nvarchar(20)
AS
DECLARE @PREV nvarchar (20)
DECLARE @CURR nvarchar (20)
DECLARE @POST nvarchar (20)
DECLARE @PNEXT nvarchar (20)
DECLARE @ISBGA bit
BEGIN
SELECT @PREV=PREV,@CURR=CURR,@POST=POST FROM MASTER WITH(NOLOCK) WHERE SN=@SN AND ISEND=0
IF (@RESULT = '02')--BGA不良
BEGIN
SET @ISBGA=1 --未結束
SELECT @POST=NODECODE,@PNEXT=POSTNODE FROM ROUTIN WITH(NOLOCK) WHERE PREVNODE=@CURR
END
ELSE
BEGIN
SET @ISBGA=0 --結束
SELECT @PNEXT=POSTNODE FROM ROUTIN WITH(NOLOCK) WHERE NODECODE=@POST
END
BEGIN TRAN
UPDATE MASTER WITH(ROWLOCK) SET PREV=@STATION,CURR=@POST,POST=@PNEXT,ISBGA=@ISBGA,RESULT=@RESULT WHERE SN=@SN
IF @@ERROR <> 0
BEGIN
--SET @returnMessage = 'SN: '+@SN + ' -->記錄保存失敗!'
ROLLBACK TRAN
RETURN -1
END
INSERT INTO HOSTORY WITH(ROWLOCK)(LRR,CURRCODE,CURRDATE,STATION,LOCATION,ROUTIN,SN)
VALUES(@LRR,@USERID,GETDATE(),@STATION,@PCNAME,@ROUTIN,@SN)
IF @@ERROR <> 0
BEGIN
--SET @returnMessage = 'SN: '+@SN + ' -->記錄保存失敗!'
ROLLBACK TRAN
RETURN -1
END
INSERT INTO REP01 WITH(ROWLOCK)(LRR,SN,LOCATION,OPERATION,DUTY,RESULT,REMARKS,REPCODE,REPDATE,FAILCODE)
VALUES(@LRR,@SN,@LOCATION,@OPERATION,@DUTY,@RESULT,@REMARKS,@USERID,GETDATE(),@FAILCODE)
IF @@ERROR <> 0
BEGIN
--SET @returnMessage = 'SN: '+@SN + ' -->記錄保存失敗!'
ROLLBACK TRAN
RETURN -1
END
COMMIT TRAN
--SET @returnMessage = 'SN: '+@SN + ' -->記錄保存成功!'
RETURN 0
END
GO
- 存儲過程中的事務處理
- 中的句子
- 偿中的
- 单片机中的“$”
- Java 中的 & | ^
- 中的Container
- C#中的@
- classpath中的".;"
- MASM中的@@
- C中的#
- C# 中的 @
- OGNL中的“#”
- SHELL中的/
- url中的#
- c#中的??
- #define中的#、## && #@
- 悲剧中的...
- sql中的[]
- 判断一个资源类型的变量是否为空
- 在Visual C#中调用API的基本过程:
- 月收入15k在上海的生活
- 钱能买走爱情吗——通过交换可以拿走的就不叫爱情
- VB 实用函数集
- 存儲過程中的事務處理
- C#设置快捷键
- 动态链接库示例代码
- c#.net常用函数和方法集
- 在程序中加载控件
- C++ -- dynamic_cast
- 页面倒数计时并自动跳转的脚本
- Js Eval函数资料
- 数据库主键生成