Qiang 烈建议您不要创建以 sp_ 为前缀的存储过程
2007-07-06 12:36
267 查看
今天在http://www.sqlmag.com/Article/ArticleID/23011/sql_server_23011.html里,发现有提到一点,就是在
ms sql server里,在命名存储过程的时候,尽量避免要用sp_这样的前缀开头,文中的一个实验方法我试了下,也的确是这个回事,原因是如果假设你在数据库a里建立了存储过程,而以sp_x为前缀进行命名存储过程的话,会在寻找的时候,先到master数据库里去找的,这当然是找不到的哦。另外,查看微软的帮助说明可以看到如下的介绍:
Qiang 烈建议您不要创建以 sp_ 为前缀的存储过程。SQL Server 始终按照下列顺序查找以 sp_ 开头的存储过程:
在 master 数据库中查找存储过程。
根据所提供的任何限定符(数据库名称或所有者)查找该存储过程。
如果未指定所有者,则使用 dbo 作为所有者查找该存储过程。
因此,虽然当前数据库中可能存在带 sp_ 前缀的用户创建的存储过程,但总会先检查 master 数据库(即使该存储过程已用数据库名称限定)。
ms sql server里,在命名存储过程的时候,尽量避免要用sp_这样的前缀开头,文中的一个实验方法我试了下,也的确是这个回事,原因是如果假设你在数据库a里建立了存储过程,而以sp_x为前缀进行命名存储过程的话,会在寻找的时候,先到master数据库里去找的,这当然是找不到的哦。另外,查看微软的帮助说明可以看到如下的介绍:
Qiang 烈建议您不要创建以 sp_ 为前缀的存储过程。SQL Server 始终按照下列顺序查找以 sp_ 开头的存储过程:
在 master 数据库中查找存储过程。
根据所提供的任何限定符(数据库名称或所有者)查找该存储过程。
如果未指定所有者,则使用 dbo 作为所有者查找该存储过程。
因此,虽然当前数据库中可能存在带 sp_ 前缀的用户创建的存储过程,但总会先检查 master 数据库(即使该存储过程已用数据库名称限定)。
相关文章推荐
- 转贴自微软MSDN:建议执行动态SQL时,使用sp_executesql 存储过程而不要使用EXECUTE 语句
- 存储过程——SP_MI_Monitor
- 带参数的存储过程sp_executesql
- 怎样在Sql server中创建、执行和删除存储过程
- SqlCommand.Parameters其实是用的存储过程sp_executesql
- 存储过程创建视图Oracle
- 动态创建SQL Server数据库、表、存储过程等架构信息
- 使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- SQL Server创建链接服务器的存储过程示例分享
- SQL Server创建链接服务器的存储过程示例分享
- 详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
- 用sp_stored_procedures 和 sp_helptext 找到遗忘的存储过程
- C#调用存储过程的方法,和简单存储过程创建的方法实例。【转载】为入门的朋友引路,大家互相学习。
- PL/SQL在左边的procedures里面创建存储过程 自己的2个例子
- SQL存储过程测试(4)——创建T-SQL测试套件
- 创建自定义存储过程
- 在SQLPLUS中创建、运行、调试、查看、修改和删除存储过程
- sql server 存储过程中创建视图 触发器的解决办法
- 存储过程创建语法
- MySQL:在命令行下创建 MySQL 存储过程有关问题