zoukankan      html  css  js  c++  java
  • 存储过程小例子

    插入记录并返回主键

    ALTER PROCEDURE [dbo].[PrcAddMessage]
     (  
        @nQueueID int,@sPatientID varchar(30),@sPatientName varchar(200),@sStudyID varchar(30), 
        @sAppointmentCode varchar(30),@sAppointmentDr varchar(30),@sAppointmentDrID varchar(30), 
        @dtAppointmentTime DateTime,@sRoomName varchar(30),@nState int,@nMessageID int output,@nOrder int output 
     )
     AS 
     begin 
        declare @nStartNum int 
        declare @nStep int 
        declare @nCurrentOrder int 
        select @nStartNum=StartNum,@nStep=Step from B_QueueTable where ID=@nQueueID 
        if @nStartNum is NULL 
            return 
        if @nStartNum is NULL 
            return 
        select @nCurrentOrder=ISNULL(MAX([Order]),0) from B_MessageTable where QueueID=@nQueueID 
         if (@nCurrentOrder <=0)  
            begin 
                set @nCurrentOrder = @nStartNum 
            end 
        else 
            begin 
                set @nCurrentOrder = @nCurrentOrder+@nStep 
            end 
        begin 
           insert into B_MessageTable(QueueID,PatientID,PatientName,StudyID,AppointmentCode,AppointmentDr,AppointmentDrID,AppointmentTime,RoomName,[State],[Order])        values(@nQueueID,@sPatientID,@sPatientName,@sStudyID,@sAppointmentCode,@sAppointmentDr,@sAppointmentDrID,@dtAppointmentTime,@sRoomName,@nState,@nCurrentOrder) 
        end 
            select @nMessageID=SCOPE_IDENTITY() 
            select @nOrder=[Order] from B_MessageTable where ID=@nMessageID 
      end

    更新记录与事务

    create PROCEDURE [dbo].[ProcMove]
    (
        @nMessageID int,@nMoveFlag int ,@nMoveCount int
    )
    AS
    BEGIN
        declare @destOrder int
        declare @sourceOrder int
        declare @currentMessageID int
        declare @currentOrder int
        declare @nStep int
        declare @nQueueID int
    
        select @sourceOrder=[Order],@nQueueID=QueueID from B_MessageTable where ID=@nMessageID
        if @nQueueID is null
            return
        if @sourceOrder is null
            return
        select @nStep=Step from B_QueueTable where ID=@nQueueID
        if @nStep is null
            return
        if(@nMoveFlag=0)
            begin
            begin transaction
                set @destOrder=@sourceOrder-@nMoveCount
                declare Select_cursor cursor for select ID,[Order] from B_MessageTable where ([Order]>=@destOrder) and ([Order]<@sourceOrder) Order by [Order] asc
                Open Select_cursor
                    FETCH NEXT FROM Select_cursor INTO @currentMessageID,@currentOrder
                    WHILE @@FETCH_STATUS=0
                    begin
                        update B_MessageTable set [Order]=@currentOrder+@nStep where ID=@currentMessageID
                        FETCH NEXT FROM Select_cursor INTO @currentMessageID,@currentOrder
                    end
                close Select_cursor
                DEALLOCATE Select_cursor
                update B_MessageTable set [Order]=@destOrder where ID=@nMessageID
            commit transaction
            end
        else
            begin
            begin transaction
                set @destOrder=@sourceOrder+@nMoveCount
                declare Select_cursor cursor for select ID,[Order] from B_MessageTable where ([Order]<=@destOrder) and ([Order]>@sourceOrder) Order by [Order] asc
                Open Select_cursor
                    FETCH NEXT FROM Select_cursor INTO @currentMessageID,@currentOrder
                    WHILE @@FETCH_STATUS=0
                    begin
                        update B_MessageTable set [Order]=@currentOrder-@nStep where ID=@currentMessageID
                        FETCH NEXT FROM Select_cursor INTO @currentMessageID,@currentOrder
                    end
                close Select_cursor
                DEALLOCATE Select_cursor
                update B_MessageTable set [Order]=@destOrder where ID=@nMessageID
            commit transaction
            end
    END
  • 相关阅读:
    HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看
    环境变量设置错误导致全部命令无法使用解决办法
    正则表达式学习一
    opencv使用中的一点经验记录
    机器学习公开课回顾(一)
    bp算法的一个简单例子
    Ubuntu 16.04安装有道词典
    使用html2canvas库实现一个简单截图功能,还需优化
    PHP-MySQL连接封装-其他简单封装
    PHP获取客户端真实IP
  • 原文地址:https://www.cnblogs.com/hhhh2010/p/6667203.html
Copyright © 2011-2022 走看看