gpt4 book ai didi

sql - 查询以根据其 ID 获取表名

转载 作者:行者123 更新时间:2023-12-05 02:25:09 25 4
gpt4 key购买 nike

我的数据库中有一个表 (DB_TableInfo),如下所示

TableId         Type
859374678 R
579845658 B
478625849 R
741587469 E
.
.
.

此表代表我的数据库中的所有表。我想做的是编写一个查询来选择“R”类型的表,获取它们的 ID 并返回属于该 ID 的表的名称(TableName 列在指定表中不可用)

谁能帮帮我?

我想写一个类似于这个的查询!

SELECT TableID = OBJECT_NAME FROM [DB_TableInfo] WHERE Type = 'R' 

最佳答案

根据 sys.objects 的提及和方括号的使用,我假设您使用的是 SQL Server。

您可以使用object_name 函数。

SELECT OBJECT_NAME(TableID) /*Might match objects that aren't tables as well though*/
FROM [DB_TableInfo]
WHERE Type = 'R'

或者加入sys.tables

SELECT T.name
FROM [DB_TableInfo] D
join sys.tables T ON D.TableID = T.object_id
WHERE D.Type = 'R'

并排除空表

SELECT t.name
FROM DB_TableInfo d
JOIN sys.tables t ON d.TableId = t.object_id
JOIN sys.dm_db_partition_stats ps ON ps.object_id = t.object_id
WHERE d.Type = 'R' and ps.index_id <= 1
GROUP BY d.TableId, t.name
HAVING SUM(ps.row_count) > 0

关于sql - 查询以根据其 ID 获取表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3914175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com