是否有命令来确定给定的关系是table
还是view
?
我使用的试错方法是:
SHOW CREATE VIEW table_name
如果是table
,而不是view
,我的数据库软件(DBeaver中的Presto)会给我一个错误:
关系
table_name
是一个table
,而不是一个view
我认为此错误来自内部运行的类似命令以审查我的查询。如果是view
,命令当然有效。
下面将显示有关所有可用表的信息表,包括哪些是 view
s 和哪些是 table
s:
SELECT * FROM information_schema.tables
有关更多详细信息,请参阅信息架构。
在 SQL Server 中,可以使用 Sys.Objects 中的"Type"列来区分表或视图。如果列 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'