jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天在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 数据库(即使该存储过程已用数据库名称限定)。

posted on 2006-11-09 15:07  jackyrong的世界  阅读(1671)  评论(2编辑  收藏  举报