--存储过程
create proc dbo.[sp_help]
as
select 1
go--drop proc [sp_help]--调用
exec sp_help 与 exec ams.dbo.sp_help 执行结果一样; 即结果执行的是系统存储过程sp_help.感觉很奇怪,允许我建立这样的对象,却不允许调用,抑或是我没找到调用的方法?当然我只是在测试时随便起了这么个名字,实际中我的存储过程没有与系统存储过程同名的。

解决方案 »

  1.   

    你够大胆的,我只知道最好不要以sp_ xp_开头,而且,若以sp_开头,会优先访问master数据库,而且我试过,新建的根本打不开,告诉损坏,在syscomments中没有记录.可能是系统不能完全关闭这项功能,又得保证系统存储过程优先访问之间不好平衡而留下的bug吧
      

  2.   

    存储过程的确可以跟系统存储过程一样
    不过由于调用的时候是优先访问系统存储过程所有没办法取到你自己定义的存储过程取存储过程名称的时候最好不要以sp_ xp_开头是为了怕今天的版本出现跟你现在的名称一样的存储过程,那样就会忽略掉你现有的存储过程当然这也不是什么错误
    就像你一个表里面有几条重复的记录
    而你每次查询的时候用DISTINCT关键字忽略掉一样