问题描述
|
我正在开发一个大型数据库,最近不得不重新构建它的一部分。我创建了一些新表,但是我不愿意删除旧表,以防万一我破坏了一些我还不知道的东西。有没有一种方法可以隐藏这些旧表,以免它们杂乱无章地列出我的清单,但是如果我需要它们,我可以重新使用它们吗?
解决方法
他们不会弄乱我的名单
我猜您在这里指的是对象资源管理器。一种处理方法是将这些表放在单独的架构中,例如“垃圾”或您喜欢的任何名称。
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