我正在开发一个大型数据库,最近不得不重新构建它的一部分。我创建了一些新的表格,但是我不愿放弃旧的表格以防万一我已经破坏了我还不知道的东西。有没有办法隐藏这些旧表,以便它们不会使我的列表混乱,但是如果我需要它们,我可以重新使用它们吗?
答案 0 :(得分:2)
他们不会弄乱我的名单
我猜你在这里指的是对象资源管理器。一种处理方法是将这些表放在一个单独的模式中,如垃圾或任何你喜欢的名称。
ALTER SCHEMA Junk TRANSFER dbo.YourOldTableName
http://msdn.microsoft.com/en-us/library/ms173423.aspx
另一个极端的选择是拒绝对这些旧表的SELECT权限给自己,并有一个单独的登录来访问它们。我甚至不喜欢这个选项: - )
答案 1 :(得分:2)
也许,新表名称与旧表名称不会发生冲突,因为您选择了不同的名称,并且您不希望看到原始名称在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, sysname, ?>'
这样,只有你(其他人看不到他们)仍然可以在需要时查询这些表。
http://avinashily.blogspot.in/2011/05/how-to-hide-table-in-sql-server.html