我可以排除/隐藏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, sysname, ?>'

这样,只有您(其他人看不到)才能在需要时查询这些表。

http://avinashily.blogspot.in/2011/05/how-to-hide-table-in-sql-server.html

最新更新