我目前正在使用涉及大量存储过程的Asp.NET Web应用程序。
由于我也在使用Asp.NET Membership / Roles / Profile系统,因此Microsoft Sql Server Management Studio中显示的存储过程列表实际上已成为一种导航内容。一旦打开Programmability/Stored Procedures
树,我就会有一长串dbo.aspnet_spXXX
存储过程,最后我的程序会游荡。
我想要做的是将所有这些aspnet存储过程重新打包到他们自己的文件夹中,让我的浮动像现在一样浮动。我不想放弃当前的组织,我只是想稍微改进一下。
是否可以这样做?
答案 0 :(得分:3)
我认为您在SSMS中可以做的最好的事情是使用过滤器来排除aspnet存储过程。
答案 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;
...
当然,您需要更新代码以引用此架构,并且还应该更改所有用户的默认架构。
这实际上并不是模式的主要目的之一,但是将对象放在不同的数据库中,这是一种在视觉上将它们分开的方法。