是否可以修改系统存储过程?

时间:2013-10-25 20:53:10

标签: sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

我想改变sp_helpindex系统程序,或者用我的版本替换它。

原因是:

  • show index_id
  • 显示已包含的列
  • 显示过滤器定义
  • 显示填充系数
  • 显示索引大小
  • 显示堆信息

另外,有趣的是我的版本表现更好(更快,更少读取,没有光标)。

我尝试了以下方法,但这些都没有奏效:

  • sp_rename
  • alter procedure
  • drop procedure

错误Invalid object name 'sys.sp_helpindex'.

我现在能想到的唯一选择就是添加新程序而不是替换现有程序。但是,有一个缺点。我希望sp_help(反过来调用sp_helpindex)可以无缝地接收我的更改,因此在服务器上使用Alt + F1的每个人都会看到更改而不更改默认的SSMS密钥快捷方式每个客户。

1 个答案:

答案 0 :(得分:5)

不,您无法修改任何系统过程。你可以自己创建并调用它;你只需要给它一个不同的sp_名称,将其标记为系统对象,而不是将其放在sys模式中。

哦,而不是从头开始创建自己的Kimberly Tripp has constantly been evolving her own version, updated for new features,当然你应该抓住Kendra Little's sp_BlitzIndex。你可能会发现你不需要写任何东西,因为很多其他人已经重新发明了那个轮子,并且做得很好。