存储过程规范

存储过程很好用,但是阅读困难,不如C#代码阅读起来省劲。
以下是我总结的存储过程的编码规范,以待商榷。

存储过程的命名:
模块名称_存储过程名称_Proc
例如:Job_AddJob_Proc
存储过程命名中不允许应用拼音。

注释:
/*
功能:功能描述
作者:Xumr
创建日期:2007-02-26
修改日期:2007-02-27  xumr  添加了对名称唯一性的限制。
返回值:
---1:具体含义
---2:具体含义
...
---其他: 具体含义

[如果在本存储过程中调用到其他存储过程]
调用到的存储过程:
---1:Job_IsExist_Proc
...

[如果被其他存储过程引用]
应用该存储过程的存储过程:
---1:Job_ManageJob_Proc

思路:
---1:首先判断名称是否为空
---2:其次...

*/

CREATE proc Job_AddJob_Prc

            --  参数含义
          @parm1 AS Varchar(100),

          --   参数含义
          @parm2  AS Varchar(50),

          --  参数含义
          @parm3  AS Varchar(50),

          --   参数含义
          @parm4 AS Int
AS


二,CREATE PROCEDURE dbo.p_my_DocumentAdd
(
  @DocumentID AS char(10) out,
  @Title AS VarChar(100),
  @Comment AS Text,
  @Hits AS Int,
  @Type AS VarChar(20),
  @Gender AS TinyInt
)
AS
BEGIN
  BEGIN TRAN
--开始事务
        --生成主键

  exec p_my_GetTableNextID 'Document','D',10,@DocumentID output  //没有定义主键时生成主键
        INSERT INTO Document (
        DocumentID,
        Title,
        Comment,
        Hits,
        Type,
        Gender)
    VALUES(
        @DocumentID,
        @Title,
        @Comment,
        @Hits,
        @Type,
        @Gender)
   
--出错处理
    IF (@@error!=0)
        BEGIN
            RAISERROR 20000 'p_my_DocumentAdd: Cannot insert data into  p_my_DocumentAdd '
--向应用程序抛出错误
            ROLLBACK TRAN--回滚事务
            Return (1)--设置返回值
        End
    COMMIT TRAN
--如果没有错误则提交事务
END


作者:水木    
 
原文地址:https://www.cnblogs.com/hsapphire/p/1549635.html