首页 > 数据库技术 > 详细

server sql 排它锁 begin tran

时间:2020-10-04 20:15:45      阅读:48      评论:0      收藏:0      [点我收藏+]

--在进行转换时,先要判断DISC_MAIN中是否存在已转纪录,如果有就只是修改记录的某些字段,如果没有就是新增一条记录
BEGIN TRY
BEGIN TRAN PK_SEQ_JL_TEXT --引用事务加排它锁防止出现主子表同步生成记录

if @DISC_ID is null -- 不存在已转纪录
BEGIN
-- 新增纪录生成DISC_ID
EXEC S139.PUBDB.DBO.GET_GUID @DISC_ID OUTPUT;
INSERT INTO TRAN_DP_C..PK_SEQ_JL_TEXT(Y_OB_TEXTID,DISC_ID,DTITLE,DDECLAREDATE)
SELECT @Y_OB_TEXTID_0042,@DISC_ID,@TITLE,@DECLAREDATE
END


else
begin

if @DISC_ID is not null and (@KEYIN is not null or @EDITNAME is not null or @COMMITNAME is not null) and @ISVALID=0
begin
return --- 1 人工编辑过,目的表无效,则不转入
end

INSERT INTO TRAN_DP_C..PK_SEQ_JL_TEXT(Y_OB_TEXTID,DISC_ID,DTITLE,DDECLAREDATE)
SELECT @Y_OB_TEXTID_0042,@DISC_ID,@TITLE,@DECLAREDATE
end

COMMIT TRAN PK_SEQ_JL_TEXT --事务提交,解锁
END TRY
BEGIN CATCH
SET @ERR_MSG=ERROR_MESSAGE()
ROLLBACK TRAN PK_SEQ_JL_TEXT --出错后回滚事务,解锁
RAISERROR(@ERR_MSG,16,1)
END CATCH

 

server sql 排它锁 begin tran

原文:https://www.cnblogs.com/gina11/p/13767898.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!