SQL Server INFORMATION_SCHEMA内容

时间:2011-04-22 09:56:35

标签: sql-server sql-server-2008 information-schema

在大多数RDBMS中,元模型是“自包含的”,这意味着我可以通过浏览元模型本身来找出元模型的模型。这似乎不是SQL Server的情况。我想做的是:

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'INFORMATION_SCHEMA'

这样,我就可以发现INFORMATION_SCHEMA架构本身。

我是否需要配置授权/权限/登录设置才能使INFORMATION_SCHEMA次观看为“自包含”?

3 个答案:

答案 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 ;