sqlserver存储过程

-- =============================================
-- Author:        <WYL>
-- alter date: <2017/09/11>
-- Description:    <医保接口领取发票>
-- =============================================
ALTER PROCEDURE [dbo].[Pro_WYL_HIS_Bfee_Invoice_GET]
    @OPERATORID NVARCHAR(4) ,
    @CURRNUMBER VARCHAR(20) OUTPUT ,
    @app_Code INT OUTPUT ,--执行状态 1成功
    @app_Msg VARCHAR(1000) OUTPUT--提示信息
AS
    DECLARE @ID INT;
    DECLARE @BEGININVOICENO VARCHAR(20);
    DECLARE @CURRNUMBER1 VARCHAR(20);
    DECLARE @ENDINVOICENO VARCHAR(20);
    DECLARE @SURPLUSNUMBER VARCHAR(20);

    BEGIN

        SET @app_Code = 1;
        SET @app_Msg = ‘OK‘;
        BEGIN TRY
            SELECT  @ID = ID ,
                    @BEGININVOICENO = BeginInvoiceNo ,
                    @CURRNUMBER1 = Currnumber ,
                    @ENDINVOICENO = EndInvoiceNo ,
                    @SURPLUSNUMBER = SurplusNumber
            FROM    TEST2..Bfee_Invoice
            WHERE   InvoiceType = ‘门诊发票‘
                    AND Operatorid = @OPERATORID
                    AND SurplusNumber > ‘0‘
            ORDER BY id;
            IF  @ID < 0
            BEGIN
            SET @app_Code = -1;
            SET @app_Msg = ‘未找到‘;
            RETURN;END
            --设置当前票号
            SET @CURRNUMBER1 =right(‘000000000‘+ltrim(@CURRNUMBER1 + 1),10);
            SET @SURPLUSNUMBER = @SURPLUSNUMBER - 1;
            --给output赋值
            SET @CURRNUMBER = @CURRNUMBER1;
            UPDATE  TEST2..Bfee_Invoice
            SET     Currnumber = @CURRNUMBER1 ,
                    SurplusNumber = @SURPLUSNUMBER
            WHERE   id = @ID;
        END TRY
        BEGIN CATCH
            SET @app_Code = -1;
            SET @app_Msg = @@ERROR;
        END CATCH;
    END;
-- =============================================
-- Author:        <WYL>
-- alter date: <2017/09/11>
-- Description:    <医保接口结算插入到HIS门诊结算>
-- =============================================
ALTER PROCEDURE [dbo].[Pro_WYL_HIS_Clinic_Balance_ADD]
    @CLINICBALANCEID NVARCHAR(10) ,--业务结算ID
    @DIAGNOSEID NVARCHAR(10) ,--诊疗号
    @SICKTYPEID NVARCHAR(4) ,--患者费用类型ID
    @INVOICEID NVARCHAR(10) ,--发票号
    @BALANCEMODE NVARCHAR(2) ,--交款方式
    @MONEY DECIMAL(5, 2) ,--金额
    @CANCELMARK INT ,--退费标志
    @OPERATORID NVARCHAR(4) ,--结算操作员ID
    @OPERATEDATE DATETIME ,--结算日期
    @ISSTOREDCARD INT ,--是否存储卡标识
    @REMARKS NVARCHAR(4000) ,--备注
    @app_Code INT OUTPUT ,--执行状态 1成功
    @app_Msg VARCHAR(1000) OUTPUT--提示信息
AS

    BEGIN
        SET @app_Code = 1;
        SET @app_Msg = ‘OK‘;
        BEGIN TRY
            INSERT  INTO TEST2..Clinic_Balance
                    ( ClinicBalanceID ,
                      DiagnoseID ,
                      SickTypeID ,
                      InvoiceID ,
                      BalanceMode ,
                      Money ,
                      CancelMark ,
                      OperatorID ,
                      OperateDate ,
                      isStoredCard ,
                      Remarks
                    )
            VALUES  ( @CLINICBALANCEID ,
                      @DIAGNOSEID ,
                      @SICKTYPEID ,
                      @INVOICEID ,
                      @BALANCEMODE ,
                      @MONEY ,
                      @CANCELMARK ,
                      @OPERATORID ,
                      @OPERATEDATE ,
                      @ISSTOREDCARD ,
                      @REMARKS
                    );
        END TRY
        BEGIN CATCH
            SET @app_Code = -1;
            SET @app_Msg = @@ERROR;
        END CATCH;
    END;
-- =============================================
-- Author:        <WYL>
-- alter date: <2017/09/11>
-- Description:    <医保接口结算插入到HIS门诊明细账>
-- =============================================
ALTER PROCEDURE [dbo].[Pro_WYL_HIS_Clinic_DetailAccount_ADD]
    @DETAILACCOUNTID NVARCHAR(10) ,--明细账号
    @INVOICEID NVARCHAR(10) ,--发票号
    @ITEMID NVARCHAR(8) ,--项目编码
    @AMOUNT DECIMAL(1, 0) ,--数量
    @MONEY DECIMAL(5, 4) ,--金额
    @DIAGNOSEID NVARCHAR(10) ,--诊疗号
    @UNITPRICE DECIMAL(4, 4) ,--单价
    @OPERATEDATE DATETIME ,--冻结日期
    @OPERATORID NVARCHAR(4) ,--操作员ID
    @OVERTYPE DECIMAL(1, 0) ,--重打
    @BILLFEE DECIMAL(1, 0) ,--票费
    @SELFMONEY DECIMAL(3, 2) ,--自付金额
    @REGISTERID NVARCHAR(12) ,--挂号号
    @CARDID NVARCHAR(4000) ,--卡号
    @EXECOFFICEID NVARCHAR(2) ,--执行科室
    @BALANCEMARK NVARCHAR(4000) ,--结算标识
    @OPERATEORDERID NVARCHAR(1) ,--操作流水号
    @UNITECODE NVARCHAR(8) ,--组合编码
    @BALANCEMODE NVARCHAR(2) ,--结算方式
    @ACCOUNTDEFRAY DECIMAL(1, 0) ,--账号支付额
    @DISCOUNTDEFRAY DECIMAL(1, 0) ,--统筹支付额
    @CASHDEFRAY DECIMAL(3, 2) ,--现金支付额
    @CANCELMARK DECIMAL(1, 0) ,--退费标识
    @REGISTEROFFICEID NVARCHAR(1) ,--挂号科室
    @DOCTORID NVARCHAR(4) ,--医师ID
    @ECIPENUM NVARCHAR(4000) ,--挂价号
    @SICKTYPEID NVARCHAR(4) ,--病人类型
    @MEDICARETYPE NVARCHAR(4) ,--医保类型
    @ESCAPECHARGEMARK INT ,--漏费控制标识
    @ACCOUNTBALANCE DECIMAL(1, 0) ,--账户余额
    @CLINICRECIPEID NVARCHAR(10) ,--处方号
    @TRANSNUMBER NVARCHAR(4000) ,--医保交流流水号
    @UPLOADTIME NVARCHAR(4000) ,--医保信息上传时间
    @BALANCESTATE INT ,--结算状态
    @BALANCEDATE DATETIME ,--结算日期
    @BALANCEOPERATOR NVARCHAR(4) ,--结算操作员ID
    @INVOICEDATE DATETIME ,--打票日期
    @INVOICEOPERATOR NVARCHAR(4) ,--打票操作员ID
    @app_Code INT OUTPUT ,--执行状态 1成功
    @app_Msg VARCHAR(1000) OUTPUT--提示信息
AS
    BEGIN
        SET @app_Code = 1;
        SET @app_Msg = ‘OK‘;
        BEGIN TRY
            INSERT  INTO TEST2..Clinic_DetailAccount
                    ( DetailAccountid ,
                      Invoiceid ,
                      Itemid ,
                      Amount ,
                      Money ,
                      Diagnoseid ,
                      UnitPrice ,
                      OperateDate ,
                      Operatorid ,
                      OverType ,
                      BillFee ,
                      SelfMoney ,
                      Registerid ,
                      Cardid ,
                      ExecOfficeid ,
                      BalanceMark ,
                      OperateOrderid ,
                      UniteCode ,
                      BalanceMode ,
                      AccountDefray ,
                      DiscountDefray ,
                      CashDefray ,
                      CancelMark ,
                      RegisterOfficeid ,
                      Doctorid ,
                      EcipeNum ,
                      SickTypeid ,
                      MedicareType ,
                      EscapeChargeMark ,
                      AccountBalance ,
                      ClinicRecipeid ,
                      TransNumber ,
                      UploadTime ,
                      BalanceState ,
                      BalanceDate ,
                      BalanceOperator ,
                      InvoiceDate ,
                      InvoiceOperator
                    )
            VALUES  ( @DETAILACCOUNTID ,
                      @INVOICEID ,
                      @ITEMID ,
                      @AMOUNT ,
                      @MONEY ,
                      @DIAGNOSEID ,
                      @UNITPRICE ,
                      @OPERATEDATE ,
                      @OPERATORID ,
                      @OVERTYPE ,
                      @BILLFEE ,
                      @SELFMONEY ,
                      @REGISTERID ,
                      @CARDID ,
                      @EXECOFFICEID ,
                      @BALANCEMARK ,
                      @OPERATEORDERID ,
                      @UNITECODE ,
                      @BALANCEMODE ,
                      @ACCOUNTDEFRAY ,
                      @DISCOUNTDEFRAY ,
                      @CASHDEFRAY ,
                      @CANCELMARK ,
                      @REGISTEROFFICEID ,
                      @DOCTORID ,
                      @ECIPENUM ,
                      @SICKTYPEID ,
                      @MEDICARETYPE ,
                      @ESCAPECHARGEMARK ,
                      @ACCOUNTBALANCE ,
                      @CLINICRECIPEID ,
                      @TRANSNUMBER ,
                      @UPLOADTIME ,
                      @BALANCESTATE ,
                      @BALANCEDATE ,
                      @BALANCEOPERATOR ,
                      @INVOICEDATE ,
                      @INVOICEOPERATOR
                    );
        END TRY
        BEGIN CATCH
            SET @app_Code = -1;
            SET @app_Msg = @@ERROR;
        END CATCH;
    END;
-- =============================================
-- Author:        <WYL>
-- alter date: <2017/09/11>
-- Description:    <修改HIS处方状态>
-- =============================================
ALTER PROCEDURE [dbo].[Pro_WYL_HIS_ClinicDoc_Recipe_UPDATE]
    @CLINICRECIPEID NVARCHAR(10) ,--处方号
    @app_Code INT OUTPUT ,--执行状态 1成功
    @app_Msg VARCHAR(1000) OUTPUT--提示信息
AS
    BEGIN
        SET @app_Code = 1;
        SET @app_Msg = ‘OK‘;

        BEGIN TRY
            UPDATE  TEST2..ClinicDoc_Recipe
            SET     RecipeState = 1
            WHERE   ClinicRecipeid = @CLINICRECIPEID;
        END TRY
        BEGIN CATCH
            SET @app_Code = -1;
            SET @app_Msg = @@ERROR;
        END CATCH;
    END;
-- =============================================
-- Author:        <WYL>
-- alter date: <2017/09/11>
-- Description:    <修改HIS挂号状态>
-- =============================================
ALTER PROCEDURE [dbo].[Pro_WYL_HIS_Register_Info_UPDATE]
    @REGISTERID nvarchar(12) ,--挂号号
    @app_Code INT OUTPUT ,--执行状态 1成功
    @app_Msg VARCHAR(1000) OUTPUT--提示信息
AS
    BEGIN
        SET @app_Code = 1;
        SET @app_Msg = ‘OK‘;

        BEGIN TRY
            UPDATE TEST2..Register_Info SET CHARGEMARK=1 WHERE REGISTERID = @REGISTERID;
        END TRY
        BEGIN CATCH
            SET @app_Code = -1;
            SET @app_Msg = @@ERROR;
        END CATCH;
    END;
时间: 2024-10-12 08:11:11

sqlserver存储过程的相关文章

SqlServer存储过程(增删改查)

* IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( @NewsTitle varchar(200), @NewsContent varchar(4000), @Creator varchar(50), @LastNewsId int output, @DepartId int ) AS BEGIN SET NOCOUNT ON; insert int

对sqlserver存储过程合游标的一些理解

在最近老板给我的数据库操作要求中,有一张类似购物清单样式的表,表中有客户ID,商品ID,商品数量,单价和商品总价,出售日期.还有一张商品折扣信息表,在这基础上商品价格同一商品价格会有差异,不同客户最高折扣额不同,折扣率也有差异,要求用sqlserver存储过程合游标表诉 一开始根本没有思路和头绪,听老大讲解是要用存储过程将查询到的数据存储好,再用游标循环遍历.对于存储过程合游标的表诉一直不太熟,之前只是将用sql语句查到的结果集放到存储过程里面,对于游标的了解不够深入.所以一开始也是想着用sql

SqlServer存储过程传入Table参数

今天是周日,刚好有空闲时间整理一下这些天工作业务中遇到的问题. 有时候我们有这样一个需求,就是在后台中传过来一个IList<类>的泛型集合数据,该集合是某个类的实例集合体,然后将该集合中的实例的数据一个个地插入到数据库或者更新到数据库中去.一开始我想到的方法是拼接字符串,然后通过存储过程对接收到的字符串进行截取,再一个个地插入或者更新到数据库中去,这是最原始的方法,不过过程会比较复杂,想到这就头疼.后来查找发现说SqlServer2008中为存储过程添加了一个新特性,可以传递表类型的参数,既然

SQLSERVER存储过程语法具体解释

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sq

SQLServer存储过程基本语法

SQLSERVER: 变量的声明:声明变量时必须在变量前加@符号DECLARE @I INT 变量的赋值:变量赋值时变量前必须加setSET @I = 30 声明多个变量:DECLARE @s varchar(10),@a INT if语句: Java代码 if .. begin ... end else if .. begin ... end else begin ... end Example: Sql代码 DECLARE @d INT set @d = 1 IF @d = 1 BEGIN

sqlserver 存储过程中拼接sql语句 动态执行

ALTER PROC [dbo].[Student_Friend_Get] @startRowIndexId INT, @maxNumberRows INT, @schoolId INT, @gradeId INT, @cId INT, @keyWords NVARCHAR(100), @userName VARCHAR(50) AS BEGIN DECLARE @sqlfilter VARCHAR(max) SET @sqlfilter = ' ' IF(@schoolId <> -1) S

SQLSERVER存储过程语法详解

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sq

sqlserver存储过程中,set rowcount 0是什么意思?

一般在语句中使用set rowcount是为了使后续的查询.更新.删除操作只影响指定的行数比如 一起执行如下语句set rowcount 1SELECT * FROM sysobjects结果只返回一行,而如果不加set rowcount 1或者使用set rowcount 0就会返回所有结果我想你见到的存储过程里包含set rowcount 0的情况是因为之前应该包含set rowcount 1之类大于0的set rowcount 设置,是为了使set rowcount 0后边的语句受影响的行

解剖SQLSERVER 第十五篇 SQLSERVER存储过程的源文本存放在哪里?(译)

解剖SQLSERVER 第十五篇  SQLSERVER存储过程的源文本存放在哪里?(译) http://improve.dk/where-does-sql-server-store-the-source-for-stored-procedures/ 目前我正在扩展OrcaMDF Studio的功能 不单只支持系统表,DMVs 和用户表 而且也要支持存储过程.那很容易,我们只需要查询sys.procedures --或者查询sys.sysschobjs, 因为当SQLSERVER没有在运行的时候我

SQLServer - 存储过程基本语法

oracle的建表sql转成sqlserver的建表sql时的注意点 : 1.所有的comment语句需要删除. 2.clob类型转换为text类型. 3.blob类型转换为image类型. 4.number类型转换为int,number(16,2)等转换为decimal(16,2),number(18)转换为bigint. 5.default sysdate改为default getDate(). 6.to_date('2009-12-18','yyyy-mm-dd')改为cast('2009