在数据库中查找表

时间:2015-06-30 14:57:56

标签: sql-server

当我运行以下查询时,我得到了预期的结果。

select * from [Beep].[Bopp]

然后,我运行下面的查询以“找到”该表。

select * from sys.objects 
where type='U'
and name like '%Bopp%'

找到该表并列出描述它的行。但是,我看不到任何对 Beep 的引用。这个名字只包含 Bopp ,所以我猜我需要查找一个密钥,但我不知道哪个列也不知道在哪个表中查找它。

修改

根据评论,我改进了查询,但我仍然不确定在哪个表中查找模式的实际名称。下面给了我 waaay 到很多点击(并且设置类型实际上没有给我任何 Beep - 类似。

select * from sys.tables t
left join sys.objects s 
  on t.schema_id = s.schema_id
where t.name like '%Bopp%'

我检查了对象的具体名称,如此。

select * from sys.objects
where name like '%Beep%'

令我惊讶的是,我没有看到任何点击。小隐藏 Beep 的东西在哪里?!

2 个答案:

答案 0 :(得分:4)

您可以针对schema_name()的{​​{1}}列使用schema_id功能,如下所示:

sys.objects

或者,您可以查询select schema_name([schema_id]) from sys.objects where [name] like '%Bopp%'; ,其中INFORMATION_SCHEMA.TABLES列提供架构的名称而不是其ID。

TABLE_SCHEMA

答案 1 :(得分:1)

Beep是您应该附加另一个sys表的模式名称,如下所示:

::addFile