当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 轻松掌握SQL Server存储过程的命名标准

MSSQL
开源MySQL公司停止提供企业版源代码tar包
细化解析:MySQL+Webmin轻松创建数据库
用mysql做站点时怎样记录未知错误的发生
SQL数据库操作类
如何利用SQL Server数据库快照形成报表
SQL Server中应当怎样得到自动编号字段
SQL Server数据库连接中常见的错误分析
详细讲解SQL Server数据库的文件恢复技术
轻松掌握SQL Server数据库的六个实用技巧
SQL Server数据库涉及到的数据仓库概念
深入了解SQL Server 2008 商业智能平台
剖析SQL Server 事务日志的收缩和截断
如何在不同版本的SQL Server中存储数据
怎样缩小SQL Server数据库的日志文件
SQL Server中两种修改对象所有者的方法
轻松掌握SQL Server存储过程的命名标准
怎样从旧版本SQL Server中重新存储数据
快速掌握如何使用SQL Server来过滤数据
教你快速掌握两个SQL Server的维护技巧
有效地使用 SQL事件探查器的提示和技巧

MSSQL 中的 轻松掌握SQL Server存储过程的命名标准


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 53 ::
收藏到网摘: n/a

在本文中,此示例标准蓝图的存储过程命名方法只适用于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'