Sql server 2008 r2 我可以排除/隐藏SQL Server 2008中的表吗?

Sql server 2008 r2 我可以排除/隐藏SQL Server 2008中的表吗?,sql-server-2008-r2,Sql Server 2008 R2,我正在开发一个大型数据库,最近不得不重新构建其中的一部分。我创建了一些新表,但我不愿意放弃旧表,以防我弄坏了一些我还不知道的东西。有没有一种方法可以隐藏这些旧表,这样它们就不会把我的列表弄得乱七八糟,但如果需要的话,我可以重新使用它们 他们不会把我的名单弄乱 我猜您指的是对象浏览器。一种处理方法是将这些表放在一个单独的模式中,比如垃圾或任何您喜欢的名称 ALTER SCHEMA Junk TRANSFER dbo.YourOldTableName 另一个极端的选择是拒绝您自己对这些旧表的SEL

我正在开发一个大型数据库,最近不得不重新构建其中的一部分。我创建了一些新表,但我不愿意放弃旧表,以防我弄坏了一些我还不知道的东西。有没有一种方法可以隐藏这些旧表,这样它们就不会把我的列表弄得乱七八糟,但如果需要的话,我可以重新使用它们

他们不会把我的名单弄乱

我猜您指的是对象浏览器。一种处理方法是将这些表放在一个单独的模式中,比如垃圾或任何您喜欢的名称

ALTER SCHEMA Junk TRANSFER dbo.YourOldTableName

另一个极端的选择是拒绝您自己对这些旧表的SELECT权限,并使用单独的登录来访问它们。我甚至不喜欢这个选项:-)

他们不会把我的名单弄乱

我猜您指的是对象浏览器。一种处理方法是将这些表放在一个单独的模式中,比如垃圾或任何您喜欢的名称

ALTER SCHEMA Junk TRANSFER dbo.YourOldTableName


另一个极端的选择是拒绝您自己对这些旧表的SELECT权限,并使用单独的登录来访问它们。我甚至不喜欢这个选项:-)

也许,新表的名称不会与旧表的名称冲突,因为您选择了不同的名称,并且不希望在ManagementStudio的对象资源管理器中看到原始表的名称

可以使用系统存储过程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, ?>'
EXEC sp\u addextendedproperty
@name=N‘microsoft数据库工具支持’,
@值=,
@level0type='schema',
@level0name=N“”,
@level1type='表',
@level1name=N“”
这样,只有您(其他人看不到)在需要时仍然能够查询这些表


也许,新表名不会与旧表名冲突,因为您选择了不同的名称,并且不希望在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, ?>'
EXEC sp\u addextendedproperty
@name=N‘microsoft数据库工具支持’,
@值=,
@level0type='schema',
@level0name=N“”,
@level1type='表',
@level1name=N“”
这样,只有您(其他人看不到)在需要时仍然能够查询这些表


备份数据库,然后删除表。否则,您真的确定已经删除了对旧表的所有依赖关系吗?这就是重点。我想我已经删除了所有依赖项,我将在测试阶段对此进行检查,但是旧表包含测试数据,如果需要重新创建表,我不想重新输入这些数据。请备份数据库,然后删除这些表。否则,您真的确定已经删除了对旧表的所有依赖关系吗?这就是重点。我想我已经删除了所有的依赖项,我会在测试阶段检查这些,但是旧表包含测试数据,如果我需要重新创建表,我不想重新输入这些数据。我没有想过使用单独的模式。那应该很好。拒绝Select权限是相当有创意的,但我认为这比它的价值更麻烦。谢谢你的想法!我没有想到使用一个单独的模式。那应该很好。拒绝Select权限是相当有创意的,但我认为这比它的价值更麻烦。谢谢你的想法!