2

是否有命令来确定给定关系是 atable还是 a view

我正在使用的试错法是:

SHOW CREATE VIEW table_name

如果它是 a table,而不是 a view,我的数据库软件(DBeaver 中的 Presto)会给我一个错误:

关系table_name是一个table,不是一个view

我认为此错误来自内部运行的类似命令以审查我的查询。如果是view,则该命令当然有效。

4

2 回答 2

4

以下将显示有关所有可用表的信息表,包括哪些是views 和哪些是tables:

SELECT * FROM information_schema.tables

有关更多详细信息,请参阅信息架构

于 2017-10-16T08:16:48.247 回答
2

在 SQL Server 中,您可以使用 Sys.Objects 中的“类型”列来区分表或视图。如果 Type 列中的值是“V”,那么它是一个视图,否则如果 Type 列中的值是“U”,那么它是一个表

要检查它是否是表,请使用以下查询

SELECT DISTINCT NAME, O.TYPE FROM SYS.OBJECTS O WHERE O.NAME LIKE 'Prefix%' AND O.TYPE='U'

要检查它是否是视图,请使用以下查询

SELECT DISTINCT NAME, O.TYPE FROM SYS.OBJECTS O WHERE O.NAME LIKE 'Prefix%' AND O.TYPE='V'

于 2018-08-01T09:47:15.897 回答