`

尽量不要以sp_为前缀命名存储过程

阅读更多

今天在http://www.sqlmag.com/Article/ArticleID/23011/sql_server_23011.html里,发现有提到一点,就是在
ms sql server里,在命名存储过程的时候,尽量避免要用sp_这样的前缀开头,文中的一个实验方法我试了下,也的确是这个回事,原因是如果假设你在数据库a里建立了存储过程,而以sp_x为前缀进行命名存储过程的话,会在寻找的时候,先到master数据库里去找的,这当然是找不到的哦。另外,查看微软的帮助说明可以看到如下的介绍:
   烈建议您不要创建以 sp_ 为前缀的存储过程。SQL Server 始终按照下列顺序查找以 sp_ 开头的存储过程:

  1. master 数据库中查找存储过程。
  2. 根据所提供的任何限定符(数据库名称或所有者)查找该存储过程。
  3. 如果未指定所有者,则使用 dbo 作为所有者查找该存储过程。

因此,虽然当前数据库中可能存在带 sp_ 前缀的用户创建的存储过程,但总会先检查 master 数据库(即使该存储过程已用数据库名称限定)。

分享到:
评论

相关推荐

    SQL_Server_存储过程_-_hoojo_-_博客园

    这些存储过程以`sp_`为前缀,主要位于`master`数据库中,但在其他数据库中也可以调用。常见的系统存储过程包括但不限于: - `sp_databases`:查看所有数据库的信息。 - `sp_tables`:列出当前数据库中的所有表。 - ...

    开发C#的数据库命名规范

    本文将详细介绍C#数据库命名规范,包括数据库文件命名、数据库对象命名、表命名、字段命名、视图命名、触发器命名、索引命名和存储过程命名等方面的规范。 一、数据库文件命名 数据库文件命名采用系统名+_+文件...

    SQL Server存储过程的命名标准

    存储过程的名称应以`sp_`为前缀,这是SQL Server系统内部所采用的标准前缀。如果自定义存储过程,建议也使用`sp_`作为前缀,以保持一致性。然而,为了区分用户自定义的存储过程与系统自带的存储过程,也可以选择使用...

    掌握SQL Server存储过程的命名标准

    存储过程名称应以`proc`作为统一的前缀,以区分系统存储过程(通常以`sp_`开头)。避免使用`sp_`前缀,因为这可能导致查询解析器在寻找系统存储过程时产生额外的开销,从而影响性能。 2. **主体部分**: 存储过程...

    存储过程的命名规范及命名方法

    例如,如果一个存储过程负责插入用户数据,可以命名为`InsertUser`。 2. **使用动词**:在命名时,通常使用动词来表示存储过程的操作类型,如`Get`, `Insert`, `Update`, `Delete`等。 3. **大小写分隔**:遵循...

    OpenXML文档,sqlserver处理XML,可用于存储过程数组传参

    如果没有提供 `WITH` 子句,OpenXML 将返回边缘(edge)表,它详细记录了 XML 文档的结构,包括节点ID、父节点ID、节点类型、本地名称、命名空间前缀和命名空间URI等。这对于理解XML文档的层次结构非常有用。 五、...

    XX集团_数据仓库命名规范.docx

    - **存储过程**:存储过程名应体现其功能,如“sp_generate_report”表示生成报告的存储过程。可以包含动词和名词,表明执行的动作和涉及的对象。 - **触发器**:触发器命名通常包含“trg_”前缀,如“trg_...

    计算机存储过程与触发器PPT学习教案.pptx

    1. **系统存储过程**是由SQL Server系统提供的,主要存储在master数据库中,以`sp_`开头。这些过程用于管理和获取关于数据库系统的信息,如`sp_depends`和`sp_helptext`。虽然它们位于master数据库,但可以在任何...

    SQL Server 优化存储过程的七种方法.doc

    系统存储过程通常以sp_开头,如果你的存储过程也这样命名,SQL Server会首先在master数据库中查找,然后在当前数据库中查找,这可能导致性能下降。建议使用USP_或其他非系统保留的前缀。 4. **使用sp_executesql...

    SQL存储过程

    系统存储过程创建和保存在master数据库中,都以sp_为名称的前缀。一般情况下,系统存储过程执行成功返回0值,若有错误发生返回非0值。 扩展存储过程是以动态链接库(dll)形式存在的外部程序。扩展存储过程与普通...

    数据库命名规范V5.0

    - **示例**:存储过程可以命名为`sp_UserDelete`、`sp_SalesReportGenerate`等。 #### 九、变量名 - **规范说明**:变量名应简洁明了,反映其用途,通常采用小写字母,并用下划线分隔单词。 - **示例**:变量名可以...

    oracle-存储过程1.ppt

    - **避免"sp_"前缀**:Oracle保留"sp_"前缀用于系统存储过程,自定义存储过程应使用其他命名约定。 - **谨慎使用临时存储过程**:过多的临时存储过程可能增加temp表的使用,影响性能。 - **不要直接修改...

    数据库存储过程与触发器.ppt

    系统存储过程的命名通常以“sp_”作为前缀,并且存储于 Master 数据库中。如果用户拥有足够的权限,就可以在任何数据库中调用这些存储过程。 存储过程提供了一种封装某一个需要重复执行任务的方法。在存储过程中,...

    数据库设计命名规范

    对于多对多关系的表,可以结合两个表的前缀命名,如用户与用户分组的关系表命名为`tb_user_group_relation`。 ### 字段命名规范 字段命名同样遵循“见名知意”的原则,采用英文短语、形容词+名词或助动词+动词时态...

    数据库、表、字段的命名规则

    数据库、表、字段的命名规则 数据库、表、字段的命名...3、存储过程(Stored Procedure)的命名规则:SP + 表名前缀 + 存储过程内容标识(首字大写)。 遵守这些命名规则可以使得数据库的开发和维护更加方便、更加高效。

    整理文档(1)-存储过程.doc

    1. **系统提供的存储过程**:这些存储过程主要存储在`master`数据库中,以`sp_`为前缀。它们主要用于系统管理任务,如数据库对象的信息查询、数据库管理等,为数据库管理员提供便利。 2. **用户自定义存储过程**:...

    C#下的SQL Server命名规范

    1. **以`sp_`开头**:所有存储过程都以`sp_`作为前缀,便于区分其他对象。 - 示例:`sp_news_add`表示添加新闻的存储过程。 2. **动作词加名词形式**:存储过程的命名采取动作词加名词的形式,如`sp_news_update...

    SQLServer选择题(含答案)(去年原题).pdf

    关于存储过程,正确的说法是不要以sp_为前缀创建任何存储过程,因为sp_前缀是SQL Server用来命名系统存储过程的。 4. 服务器角色和数据库角色 服务器角色和数据库角色是SQL Server中的安全机制,用于控制用户对...

    数据库命名规范!数据库命名规范

    - 存储过程前缀`SP_`,如`SP_CountFee`。 - 触发器前缀`TR_`。 - 函数前缀`FN_`。 - 主键前缀`PK_`。 - 索引前缀`IX_`。 - 同样,前缀后的首字母大写,多词时,每个单词首字母大写。 - 关键字全部大写,如`...

Global site tag (gtag.js) - Google Analytics