1

ほとんどの RDBMS では、メタモデルは「自己完結型」です。つまり、メタモデル自体を参照することで、メタモデルのモデルを見つけることができます。これは、SQL Server には当てはまらないようです。私がやりたいことはこれです:

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

INFORMATION_SCHEMAそうすれば、スキーマ自体を発見できます。

INFORMATION_SCHEMAビューを「自己完結型」にするために構成する必要がある付与/許可/ログイン設定はありますか?

4

3 に答える 3

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に関する何も含まれていません。INFORMATION_SCHEMA

sys.system_objectsこれらのメタデータは、代わりに経由でアクセスされます。

于 2011-04-22T10:14:15.100 に答える
1

sys.all_views を使用できます

select SCHEMA_NAME(schema_id), name
from sys.all_views
order by 1,2
于 2011-04-22T10:28:57.123 に答える
-1
USE information_schema;
SHOW TABLES;

USE mysql;
SHOW TABLES ;
于 2011-04-22T10:03:18.977 に答える