在SQL Server 2014对象资源管理器中隐藏一些表

时间:2018-02-20 05:27:11

标签: sql-server

是否可以在SQL Server 2014的对象资源管理器中隐藏(并显示)某些表?实际上有重复的日志表以实际表为前缀。我想暂时隐藏它们。此外,如果需要,我想向他们展示。

3 个答案:

答案 0 :(得分:1)

您可以使用扩展属性

EXEC sp_addextendedproperty
@name = N'microsoft_database_tools_support',
@value = 'Hide',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address';
GO

上面的代码隐藏了person.address表

如果你想恢复,下面是代码

EXEC sp_dropextendedproperty
@name = N'microsoft_database_tools_support',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address';
GO

<强>参考文献: Hiding tables in SSMS Object Explorer

您还可以使用下面的内容拒绝查看对象资源管理器中的任何用户特定架构或表,但是当用户具有更高的角色(如db_owner)时,这不起作用。

DENY VIEW DEFINITION ON Schema.Table TO UserName;

答案 1 :(得分:1)

尝试这个

如果你想hide table使用这个

EXEC sp_addextendedproperty
@name = N'microsoft_database_tools_support',
@value = 'Hide',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address';
GO

show table使用此

EXEC sp_dropextendedproperty
@name = N'microsoft_database_tools_support',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address';
GO

答案 2 :(得分:0)

您可以添加一个隐藏表格的扩展属性:

EXEC sp_addextendedproperty
@name = N'microsoft_database_tools_support',
@value = 'Hide',
@level0type = N'Schema', @level0name = '**YOUR SCHEMA**',
@level1type = N'Table', @level1name = '**YOUR TABLE NAME**';
GO