我可以排除/隐藏表SQL Server 2008吗?

问题描述

| 我正在开发一个大型数据库,最近不得不重新构建它的一部分。我创建了一些新表,但是我不愿意删除旧表,以防万一我破坏了一些我还不知道的东西。有没有一种方法可以隐藏这些旧表,以免它们杂乱无章地列出我的清单,但是如果我需要它们,我可以重新使用它们吗?     

解决方法

       他们不会弄乱我的名单    我猜您在这里指的是对象资源管理器。一种处理方法是将这些表放在单独的架构中,例如“垃圾”或您喜欢的任何名称。 ALTER SCHEMA垃圾传输dbo.YourOldTableName http://msdn.microsoft.com/en-us/library/ms173423.aspx 另一个严厉的选择是拒绝您自己对那些旧表的SELECT权限,并进行单独的登录以访问它们。我什至不喜欢这个选项:-)     ,也许,新表的名称不会与旧表的名称冲突,因为您选择了不同的名称,并且您不想看到原始名称在Management Studio的对象浏览器中可见。 您可以使用系统存储过程sp_addextendedproperty隐藏它们:
EXEC sp_addextendedproperty 
@name = N\'microsoft_database_tools_support\',@value = <Hide?,int,1>,@level0type = \'schema\',@level0name = N\'<Schema Name,sysname,dbo>\',@level1type = \'table\',@level1name = N\'<Table Name,?>\'
这样,只有您(其他人看不到它们)仍可以在需要时查询这些表。 http://avinashily.blogspot.in/2011/05/how-to-hide-table-in-sql-server.html