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

Ale*_*Aza 3 sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

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

原因是:

  • show index_id
  • 显示包括列
  • 显示过滤器定义
  • 显示填充因子
  • 显示索引大小
  • 显示堆信息

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

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

  • sp_rename
  • 改变程序
  • 放弃程序

错误 Invalid object name 'sys.sp_helpindex'.

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

Aar*_*and 5

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

哦,而不是从零开始创建自己的,Kimberly Tripp不断发展自己的版本,更新了新功能,当然你应该抓住Kendra Little的sp_BlitzIndex.你可能会发现你不需要写任何东西,因为很多其他人已经重新发明了那个轮子,并且做得很好.