读书人

现实项目自己写的一个主从表带事物存储

发布时间: 2012-09-02 21:00:34 作者: rapoo

实际项目自己写的一个主从表带事物存储过程

if exists(select * from dbo.sysobjects where id=object_id('contentCopyChannerId') and objectproperty(id,'isprocedure')=1)drop procedure contentCopyChannerIdgocreate proc contentCopyChannerId as declare @ID numeric declare @DETAILID numeric declare @USERID numeric declare @BASECHANNEL numeric declare @NEWBASECHANNEL numeric declare @TITLE varchar(300) declare @CREATETIME datetime declare @SOURCE varchar(100) declare @SOURCEURL varchar(100) declare @FINGER varchar(100) declare @AUTH_TYPE numeric declare @ATTACHMENT_COUNT numeric declare @COMMENT_COUNT numeric declare @HITS numeric declare @displaytime datetime declare @isdel numeric declare @titlePicture numeric declare @style varchar(20) declare @titlecolor varchar(50) declare @TOP char(1) declare @TOPTIME datetime declare @channel3g_Click int declare @isCopy varchar(50) declare @State int declare @newID numeric declare @CONTENT_CHANNEL_STATUS numeric declare @CONTENT_CHANNEL_CREATETIME datetime declare @CONTENT_CHANNEL_PUBLISHTIME datetime Set @State = 0 declare @contentCursor cursor --内容 declare @contentChannelCursor cursor --内容频道关系Begin Transet @contentCursor=cursor forselect    top 2 [ID], DETAILID, USERID,( case BASECHANNEL  when '100339' then '101133'  when '100340' then '101134'  when '100343' then '101117'  when '100317' then '100985'  when '100319' then '100985'  when '100661' then '100984'  when '100311' then '100986'  when '100316' then '100981'  when '101111' then '101004'  when '100315' then '100982'  when '101110' then '101006'  when '100318' then '100990'  when '100342' then '101123'  when '100312' then '101120'  when '100627' then '101122'  end) as NEWBASECHANNEL, BASECHANNEL, TITLE, CREATETIME, SOURCE, SOURCEURL, FINGER, AUTH_TYPE, ATTACHMENT_COUNT, COMMENT_COUNT, HITS, displaytime, isdel, titlePicture, style, titlecolor, [TOP], TOPTIME, channel3g_Clickfrom CONTENT where BASECHANNEL in( --100339--,100340--,100343--,100317--,100319--,100661100311--,100316--,101111--,100315--,101110--,100318--,100342--,100312--,100627       ) and (isCopy is  null or isCopy='')open @contentCursor--如果没有任何行则直接退出If @@Cursor_Rows = 0BeginClose @contentCursorDeallocate @contentCursorEndfetch next from @contentCursor into   @ID, @DETAILID, @USERID, @NEWBASECHANNEL, @BASECHANNEL, @TITLE, @CREATETIME, @SOURCE, @SOURCEURL, @FINGER, @AUTH_TYPE, @ATTACHMENT_COUNT, @COMMENT_COUNT, @HITS, @displaytime, @isdel, @titlePicture, @style, @titlecolor, @TOP, @TOPTIME, @channel3g_Clickwhile(@@fetch_status=0)beginset @isCopy=1insert into CONTENT(DETAILID, USERID, BASECHANNEL, TITLE, CREATETIME, SOURCE, SOURCEURL, FINGER, AUTH_TYPE, ATTACHMENT_COUNT, COMMENT_COUNT, HITS, displaytime, isdel, titlePicture, style, titlecolor, [TOP], TOPTIME, channel3g_Click, isCopy   )values( @DETAILID, @USERID, @NEWBASECHANNEL, @TITLE, @CREATETIME, @SOURCE, @SOURCEURL, @FINGER, @AUTH_TYPE, @ATTACHMENT_COUNT, @COMMENT_COUNT, @HITS, @displaytime, @isdel, @titlePicture, @style, @titlecolor, @TOP, @TOPTIME, @channel3g_Click, @isCopy      )Set @newID = @@Identityupdate CONTENT set isCopy='2'where (isCopy is  null or isCopy='') and ID=@IDset @contentChannelCursor=cursor for --内容频道关系结果集select  CREATETIME, PUBLISHTIME, STATUSfrom CONTENT_CHANNEL where CHANNEL_ID=@BASECHANNELand CONTENT_ID=@IDOpen @contentChannelCursor--如果没有任何行则直接退出If @@Cursor_Rows = 0BeginClose @contentChannelCursorDeallocate @contentChannelCursorEndfetch next from @contentChannelCursor into @CONTENT_CHANNEL_CREATETIME, @CONTENT_CHANNEL_PUBLISHTIME, @CONTENT_CHANNEL_STATUSClose @contentChannelCursorDeallocate @contentChannelCursorinsert into CONTENT_CHANNEL(CONTENT_ID, CHANNEL_ID, CREATETIME, PUBLISHTIME, STATUS, isCopy   )values  ( @newID,@NEWBASECHANNEL,@CONTENT_CHANNEL_CREATETIME,@CONTENT_CHANNEL_PUBLISHTIME,@CONTENT_CHANNEL_STATUS,'1'  )update CONTENT_CHANNEL set isCopy='2' where (isCopy is  null or isCopy='')and  CHANNEL_ID=@BASECHANNELand CONTENT_ID=@IDIf @@Error <> 0BeginRollback TranClose contentCursorDeallocate contentCursorReturn -1Endfetch next from @contentCursor into   @ID, @DETAILID, @USERID, @NEWBASECHANNEL, @BASECHANNEL, @TITLE, @CREATETIME, @SOURCE, @SOURCEURL, @FINGER, @AUTH_TYPE, @ATTACHMENT_COUNT, @COMMENT_COUNT, @HITS, @displaytime, @isdel, @titlePicture, @style, @titlecolor, @TOP, @TOPTIME, @channel3g_ClickEndClose @contentCursorDeallocate @contentCursorCommit TranEXECUTE  contentCopyChannerId

?

读书人网 >其他数据库

热点推荐