Is it possible to modify system stored procedure?

瘦欲@ 提交于 2020-02-27 08:22:37

问题


I would like to alter sp_helpindex system procedure, or rather replace it with my version.

The reasons are:

  • show index_id
  • show included columns
  • show filter definition
  • show fill factor
  • show index sizes
  • show heap info as well

Also, interestingly enough my version turned out to be better performing (faster, fewer reads, no cursor).

I tried the following, but none of these worked:

  • sp_rename
  • alter procedure
  • drop procedure

The error Invalid object name 'sys.sp_helpindex'.

The only option I can think of right now is just to add a new procedure instead of replacing existing. However, there is one disadvantage. I was hoping that sp_help (which in turn calls sp_helpindex) would pick up my change seamlessly and as a result everybody who uses Alt+F1 on the server would see the change without changing default SSMS key shortcut on every client.


回答1:


No, you can't modify any system procedure. You can create your own and call it instead; you just have to give it a different sp_ name, mark it as a system object, and not put it in the sys schema.

Oh, and instead of creating your own from scratch, Kimberly Tripp has constantly been evolving her own version, updated for new features and of course you should grab Kendra Little's sp_BlitzIndex. You might find that you don't need to write anything, because plenty of other people have already reinvented that wheel, and done it quite well.



来源:https://stackoverflow.com/questions/19599264/is-it-possible-to-modify-system-stored-procedure

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!