Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 仅列出我的应用程序使用的SQL Server表(SSMS中“表”树视图中的表)_Sql Server_Ssms - Fatal编程技术网

Sql server 仅列出我的应用程序使用的SQL Server表(SSMS中“表”树视图中的表)

Sql server 仅列出我的应用程序使用的SQL Server表(SSMS中“表”树视图中的表),sql-server,ssms,Sql Server,Ssms,我很难弄清楚如何只获取在SSMS树视图中dbname->tables下显示的表列表。我不想要系统表,也不想要任何视图,等等。我只想要在树视图的tables视图下显示的表。我试过这个: Select * from dbname.INFORMATION_SCHEMA.TABLES Where dbname.INFORMATION_SCHEMA.TABLES.TABLE_TYPE = 'BASE TABLE' 但这给了我的不仅仅是桌子下面的树视图。我试图解决的问题是,其中有7000多个表,我有一个

我很难弄清楚如何只获取在SSMS树视图中dbname->tables下显示的表列表。我不想要系统表,也不想要任何视图,等等。我只想要在树视图的tables视图下显示的表。我试过这个:

Select * from dbname.INFORMATION_SCHEMA.TABLES
 Where dbname.INFORMATION_SCHEMA.TABLES.TABLE_TYPE = 'BASE TABLE'
但这给了我的不仅仅是桌子下面的树视图。我试图解决的问题是,其中有7000多个表,我有一个“隐藏”我从未看过的表的过程,但我需要将其批量应用于表列表中行计数为0的列表。提前谢谢

编辑:请不要被我最终要做的事情分心。。。这只是上下文。主要问题是“如何在特定数据库的“tables”树视图下获取表列表。”

似乎操作的实际内容是:

SELECT [name]
FROM sys.tables t
WHERE t.is_ms_shipped = 0
  AND t.[type] = 'U';

但是,当然,在系统数据库中有用户表这一事实是另一个问题。

好吧,由于没有任何答案可以满足我的需要,我做了以下工作:
在SSMS中,我在树视图中为相关数据库选择了“Tables”节点。然后我点击“F7”键,它在“对象查看器”中显示了一个表列表。该列表还包括“系统表”下的表(我不想要),其中只有两个。好消息是Object Viewer允许多选,所以我只选择了所有的表,复制它们(CTRL+C)并将它们粘贴到Excel中。然后,我只是从Excel的结果列表中删除了两个我不想要的表。没有基于全部代码/SQL的解决方案那么优雅(这正是我的目标),但由于这是一次性的,我可以接受它。如果我也可以得到“系统表”,那么我最初问题中的SQL似乎是最好的答案,尽管@Lamu使用的“IS_MS_SHIPPED=0”是一个有趣的角度,阅读本文的人也应该看看。

这是否回答了你的问题@拉法卡特·阿里的回归仍然比预期的要多。同样,在MSDB上尝试一下,可以看到返回147行,而预期只有7行。不。在MSDB表上尝试这个方法(它只显示树视图中的少数表(在我的例子中是7个),但是您提供的查询返回了100多个表。您检查了堆栈溢出问题吗?详细信息在提供的链接上提供。您可以检查。但是
MSDB
是一个系统数据库,@jessechun;它不会(不应该)有任何用户表在那里。@Lamu问题是……SSMS不知怎么知道在“表”下的树状视图中显示哪些表分支。它怎么知道?我在系统数据库中没有用户表。我有一个数据库,它是我们使用的应用程序的一部分。该数据库有7000多个表。我想获取“表”下的表列表SSMS树视图中的树。我所说的任何其他内容都是为了帮助解释我正在尝试做的事情。我不想要“系统表”下的任何表、任何存储过程或任何视图或任何其他内容。只需要“表”下直接列出的表branch.如果这让人困惑,我很抱歉,但我不知道该怎么说。上面的说法完全与您之前的评论相矛盾,@Jessechun:“再次尝试对MSDB执行此操作,在预期只有7行的情况下返回147行。”。
MSDB
是一个系统数据库。@Lamu如果我无法以使您(和其他人)感到不安的方式解释,我很抱歉了解..提供MSDB作为示例是因为它是您在SSMS实例上拥有的一个数据库,我们有共同的数据库用于测试和比较结果。您没有我的7000+表数据库,所以我只提供MSDB作为我们之间比较结果的公分母。我没有将用户表放在MSDB中。这不是relevant表示这是一个用于此“测试”的系统数据库。无论如何,我想出了一个麻烦但有效的方法来获得我需要的。“你没有我的7000+表数据库”不,不幸的是,我的一个数据库只有20000个对象,@Jessechun…但是如果说你在
sys.tables
中看到7个表,当你非常强烈地期望看到7个表时,就意味着你只期望看到用户表。不幸的是,结果是,你没有给我们提供足够的信息让我们给你答案。好吧,多基,你赢了。你的比我的大。
SELECT [name]
FROM sys.tables t
WHERE t.is_ms_shipped = 0
  AND t.[type] = 'U';