是否有命令来确定给定关系是 atable
还是 a view
?
我正在使用的试错法是:
SHOW CREATE VIEW table_name
如果它是 a table
,而不是 a view
,我的数据库软件(DBeaver 中的 Presto)会给我一个错误:
关系
table_name
是一个table
,不是一个view
我认为此错误来自内部运行的类似命令以审查我的查询。如果是view
,则该命令当然有效。
在 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'