我在弄清楚如何只获取在dbname-> tables下的SSMS树视图中显示的表的列表时遇到麻烦。我不需要系统表,也不需要任何视图,等等。我只希望显示在树视图的表视图下的表。我试过了:
Select * from dbname.INFORMATION_SCHEMA.TABLES
Where dbname.INFORMATION_SCHEMA.TABLES.TABLE_TYPE = 'BASE TABLE'
但是,这不仅给我提供了表下方树视图中的内容。我要解决的问题是那里有7000多个表,并且我有一个proc可以“隐藏”我从未看过的表,但是我需要将其批量应用到仅“表”列表中的行-count =0。在此先感谢。
编辑:请不要为我最终想做的事情而分心...这只是出于背景考虑。主要问题是“如何获取特定数据库的“表”树视图下的表列表。”
USE YOURDBNAME
GO
SELECT *
FROM sys.Tables
GO
似乎在之后是[[实际上:
SELECT [name]
FROM sys.tables t
WHERE t.is_ms_shipped = 0
AND t.[type] = 'U';
但是,当然,在系统数据库中有用户表的事实是另一个问题。