在大多数RDBMS中,元模型是“自包含的”,这意味着我可以通过浏览元模型本身来找出元模型的模型。这似乎不是SQL Server的情况。我想做的是:
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'INFORMATION_SCHEMA'
这样,我就可以发现INFORMATION_SCHEMA
架构本身。
我是否需要配置授权/权限/登录设置才能使INFORMATION_SCHEMA
次观看为“自包含”?
答案 0 :(得分:1)
不要认为这是可能的。
INFORMATION_SCHEMA.TABLES
视图的定义是
CREATE VIEW [INFORMATION_SCHEMA].[TABLES]
AS
SELECT
DB_NAME() AS TABLE_CATALOG,
s.name AS TABLE_SCHEMA,
o.name AS TABLE_NAME,
CASE o.type
WHEN 'U' THEN 'BASE TABLE'
WHEN 'V' THEN 'VIEW'
END AS TABLE_TYPE
FROM
sys.objects o LEFT JOIN sys.schemas s
ON s.schema_id = o.schema_id
WHERE
o.type IN ('U', 'V')
所以它从sys.objects
中提取信息,但这反过来又不包含{{1}}个对象。
可以通过INFORMATION_SCHEMA
来访问这些元数据。
答案 1 :(得分:1)
您可以使用sys.all_views
select SCHEMA_NAME(schema_id), name
from sys.all_views
order by 1,2
答案 2 :(得分:-1)
USE information_schema;
SHOW TABLES;
USE mysql;
SHOW TABLES ;