zoukankan      html  css  js  c++  java
  • 存储过程命名规则(建议)

     

    在本文中,此示例标准蓝图的存储过程命名方法只适用于SQL内部,假如你正在创建一个新的存储过程,或是发现一个没有按照这个标准构造的存储过程,即可以参考使用这个标准。

     

    注释:假如存储过程以sp_ 为前缀开始命名那么会运行的稍微的缓慢,这是因为SQL Server将首先查找系统存储过程,所以我们决不推荐使用sp_作为前缀。

    存储过程的命名有这个的语法:

     

    [proc] [MainTableName] By [FieldName(optional)] [Action]
    
    [ 1  ]  [ 2 ]      [ 3 ]  [ 4 ]

    (1) 所有的存储过程必须有前缀'proc'. 所有的系统存储过程都有前缀"sp_", 推荐不使用这样的前缀因为会稍微的减慢。

     

    (2) 表名就是存储过程访问的对象。

     

    (3) 可选字段名就是条件子句。 例如:

     

    procClientByCoNameSelect, procClientByClientIDSelect

     

    (4) 最后的行为动词就是存储过程要执行的任务。

     

    如果存储过程返回一条记录那么后缀是:Select

     

    如果存储过程插入数据那么后缀是:Insert

     

    如果存储过程更新数据那么后缀是:Update

     

    如果存储过程有插入和更新那么后缀是:Save

     

    如果存储过程删除数据那么后缀是:Delete

     

    如果存储过程更新表中的数据 (ie. drop and create) 那么后缀是:Create

     

    如果存储过程返回输出参数或0,那么后缀是:Output

    例子:

    一个仅仅返回一个输出参数的存储过程:

     

    ALTER PROCEDURE procClientRateOutput 
             @pstrClientID VARCHAR(6) = 'CABLE',
             @pstrCategoryID VARCHAR(6) = '<All>',
             @pstrEmpID VARCHAR(6)='AC',
             @pdteDate datetime = '1996/1/1',
             @curRate MONEY OUTPUT
    
    AS
    
    -- Description: Get the $Rate for this client and this employee 
    --         and this category from Table ClientRate
    
    SET @curRate = (
                    SELECT TOP 1 Rate 
                    FROM ClientRate 
                    WHERE ClientID=@pstrClientID 
                    AND EmpID=@pstrEmpID 
                    AND CategoryID=@pstrCategoryID
                    AND DateEnd > @pdteDate
                    ORDER BY DateEnd
                   )
    
    IF @curRate IS NULL
    
             SET @curRate =
    (
                    SELECT TOP 1 Rate 
                    FROM ClientRate 
                    WHERE ClientID=@pstrClientID
                    AND EmpID=@pstrEmpID 
                    AND CategoryID='<ALL>' 
                    AND DateEnd > @pdteDate 
                    ORDER BY DateEnd
                   )
    
    RETURN

    从前的写法:

     

      Select 'procGetRate' or 'sp_GetRate' 
      Insert 'procEmailMergeAdd'

    目前的写法:

     

      'procClientRateSelect' 
      'procEmailMergeInsert'
  • 相关阅读:
    [Python]计算豆瓣电影TOP250的平均得分
    [Golang]使用自建代理访问指定网站
    HDU 2689.Sort it-冒泡排序
    HDU 1728.逃离迷宫-BFS
    hihoCoder #1498.Diligent Robots
    POJ 2503.Babelfish-sscanf()函数+strcmp()函数+二分
    Codeforces 608 B. Hamming Distance Sum-前缀和
    Codeforces 608 A. Saitama Destroys Hotel
    sscanf()函数
    UVA 11461.Square Numbers
  • 原文地址:https://www.cnblogs.com/wzg0319/p/2002258.html
Copyright © 2011-2022 走看看