重新组织存储过程显示在SQL Server Management Studio中

时间:2012-05-15 12:30:42

标签: asp.net sql-server sql-server-2008

我目前正在使用涉及大量存储过程的Asp.NET Web应用程序。

由于我也在使用Asp.NET Membership / Roles / Profile系统,因此Microsoft Sql Server Management Studio中显示的存储过程列表实际上已成为一种导航内容。一旦打开Programmability/Stored Procedures树,我就会有一长串dbo.aspnet_spXXX存储过程,最后我的程序会游荡。

我想要做的是将所有这些aspnet存储过程重新打包到他们自己的文件夹中,让我的浮动像现在一样浮动。我不想放弃当前的组织,我只是想稍微改进一下。

是否可以这样做?

3 个答案:

答案 0 :(得分:3)

我认为您在SSMS中可以做的最好的事情是使用过滤器来排除aspnet存储过程。

  • 右键单击“存储过程”文件夹
  • 选择过滤器 - >过滤器设置
  • 按名称过滤,不包含'aspnet_sp'。

答案 1 :(得分:2)

我会推荐使用redgate的SQL搜索工具 - 方便查找特定的proc,而不是滚动大型列表。允许您双击并转到它:

http://www.red-gate.com/products/sql-development/sql-search/

答案 2 :(得分:2)

Management Studio不支持按字母顺序对这些对象进行排序。

我喜欢过滤器和第三方加载项的想法,但您可以探索的另一个想法是为对象使用不同的模式。如果您将模式命名为“abc”或更符合逻辑的模式,则它们将始终排序,并且您的所有用户都不必应用过滤器。

CREATE SCHEMA abc AUTHORIZATION dbo;
GO
ALTER SCHEMA abc TRANSFER dbo.proc1;
ALTER SCHEMA abc TRANSFER dbo.proc2;
ALTER SCHEMA abc TRANSFER dbo.proc3;
...

当然,您需要更新代码以引用此架构,并且还应该更改所有用户的默认架构。

这实际上并不是模式的主要目的之一,但是将对象放在不同的数据库中,这是一种在视觉上将它们分开的方法。