次の方法で共有


sys.objects (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス

データベース内に作成されているユーザー定義のスキーマ スコープ オブジェクト (ネイティブ コンパイルされたスカラー ユーザー定義関数を含む) ごとに 1 つの行が含まれます。

詳しくは、「インメモリ OLTP でのユーザー定義のスカラー関数」をご覧ください。

Note

sys.objects では、DDL トリガーはスキーマ スコープでないため、表示されません。 DML と DDL の両方を含むすべてのトリガーは、sys.triggers に格納されます。 sys.triggers では、各種トリガーの名前スコープ ルールを混在させて格納できます。

列名 データ型 説明
name sysname オブジェクト名
object_id int オブジェクト ID 番号。 データベース内で一意です。
principal_id int スキーマの所有者と異なる場合は、個々の所有者の ID。 既定では、スキーマに含まれているオブジェクトはスキーマの所有者が所有します。 ただし、 ALTER AUTHORIZATION ステートメントを使用して所有権を変更することで、別の所有者を指定できます。

NULL 代替の個々の所有者がない場合は〘。

オブジェクトの種類が次のいずれかの値の場合に NULL されます。

C = Check 制約
D = 既定値 (制約またはスタンドアロン)
F = 外部キー制約
PK = 主キー制約
R = ルール (古いスタイル、スタンドアロン)
TA = アセンブリ (CLR 統合) トリガー
TR = SQL トリガー
UQ = Unique 制約
EC = エッジ制約
schema_id int オブジェクトが含まれているスキーマの ID。

スキーマ スコープのシステム オブジェクトは、常に sys または INFORMATION_SCHEMA スキーマに含まれます。
parent_object_id int このオブジェクトが属しているオブジェクトの ID。

0 = 子オブジェクトではありません。
type char(2) オブジェクトの種類:

AF = 集計関数 (CLR)
C = Check 制約
D = 既定値 (制約またはスタンドアロン)
F = 外部キー制約
FN = SQL スカラー関数
FS = アセンブリ (CLR) スカラー関数
FT = Assembly (CLR) テーブル値関数
IF = SQL インライン テーブル値関数 (TVF)
IT = 内部テーブル
P = SQL ストアド プロシージャ
PC = アセンブリ (CLR) ストアド プロシージャ
PG = プラン ガイド
PK = 主キー制約
R = ルール (古いスタイル、スタンドアロン)
RF = Replication-filter-procedure
S = システム ベース テーブル
SN = シノニム
SO = Sequence オブジェクト
U = テーブル (ユーザー定義)
V = ビュー

適用対象: SQL Server 2012 (11.x) 以降のバージョン

SQ = サービス キュー
TA = アセンブリ (CLR) DML トリガー
TF = SQL table-valued-function (TVF)
TR = SQL DML トリガー
TT = テーブルの種類
UQ = unique 制約
X = 拡張ストアド プロシージャ

適用対象: SQL Server 2014 (12.x) 以降のバージョン、Azure SQL Database、Azure Synapse Analytics、Analytics Platform System (PDW)

ST = 統計ツリー

適用対象: SQL Server 2016 (13.x) 以降のバージョン、Azure SQL Database、Azure Synapse Analytics、Analytics Platform System (PDW)

ET = 外部テーブル

適用対象: SQL Server 2017 (14.x) 以降のバージョン、Azure SQL Database、Azure Synapse Analytics、Analytics Platform System (PDW)

EC = エッジ制約
type_desc nvarchar(60) オブジェクトの種類の説明。

AGGREGATE_FUNCTION
CHECK_CONSTRAINT
CLR_SCALAR_FUNCTION
CLR_STORED_PROCEDURE
CLR_TABLE_VALUED_FUNCTION
CLR_TRIGGER
DEFAULT_CONSTRAINT
EDGE_CONSTRAINT
EXTENDED_STORED_PROCEDURE
FOREIGN_KEY_CONSTRAINT
INTERNAL_TABLE
PLAN_GUIDE
PRIMARY_KEY_CONSTRAINT
REPLICATION_FILTER_PROCEDURE
RULE
SEQUENCE_OBJECT
SERVICE_QUEUE
SQL_INLINE_TABLE_VALUED_FUNCTION
SQL_SCALAR_FUNCTION
SQL_STORED_PROCEDURE
SQL_TABLE_VALUED_FUNCTION
SQL_TRIGGER
SYNONYM
SYSTEM_TABLE
TYPE_TABLE
UNIQUE_CONSTRAINT
USER_TABLE
VIEW
create_date datetime オブジェクトが作成された日付です。
modify_date datetime ALTER ステートメントを使用してオブジェクトが最後に変更された日付。 オブジェクトがテーブルまたはビューの場合、modify_date は、そのテーブルまたはビューのインデックスが作成または変更された場合にも変更されます。
is_ms_shipped bit オブジェクトは内部 SQL Server コンポーネントによって作成されています。
is_published bit オブジェクトがパブリッシュされます。
is_schema_published bit オブジェクトのスキーマのみがパブリッシュされることを示します。

解説

OBJECT_IDOBJECT_NAME、およびOBJECTPROPERTY組み込み関数をsys.objectsに示されているオブジェクトに適用できます。

このビューのバージョンには、システム オブジェクトを示す同じスキーマ ( sys.system_objects と呼ばれます) があります。 sys.all_objectsと呼ばれる別のビューには、システム オブジェクトとユーザー オブジェクトの両方が表示されます。 3 つのカタログ ビューはすべて同じ構造です。

このバージョンの SQL Server では、XML インデックスや空間インデックスなどの拡張インデックスは、 sys.objects 内の内部テーブルと見なされます (typeITtype_descINTERNAL_TABLE)。 拡張インデックスの場合:

  • name はインデックス テーブルの内部名です
  • parent_object_id はベース テーブルの object_id です
  • is_ms_shipped列、 is_published列、および is_schema_published 列は次の値に設定されます。 0

オブジェクトのサブセットは、次のような特定の型のオブジェクトのシステム ビューを使って表示できます。

アクセス許可

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

A. 過去 N 日間に変更されたすべてのオブジェクトを返します

次のクエリの <database_name><n_days> を有効な値に置き換えてから、クエリを実行します。

USE <database_name>;
GO

SELECT name AS object_name,
    SCHEMA_NAME(schema_id) AS schema_name,
    type_desc,
    create_date,
    modify_date
FROM sys.objects
WHERE modify_date > GETDATE() - <n_days>
ORDER BY modify_date;
GO

B. 指定したストアド プロシージャまたは関数のパラメーターを返す

次のクエリを実行する前に、<database_name><schema_name.object_name> を有効な名前に置き換えてください。

USE <database_name>;
GO

SELECT SCHEMA_NAME(schema_id) AS schema_name,
    o.name AS object_name,
    o.type_desc,
    p.parameter_id,
    p.name AS parameter_name,
    TYPE_NAME(p.user_type_id) AS parameter_type,
    p.max_length,
    p.precision,
    p.scale,
    p.is_output
FROM sys.objects AS o
INNER JOIN sys.parameters AS p
    ON o.object_id = p.object_id
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')
ORDER BY schema_name,
    object_name,
    p.parameter_id;
GO

C. データベース内のすべてのユーザー定義関数を返す

次のクエリを実行する前に、<database_name> を有効なデータベース名に置き換えてください。

USE <database_name>;
GO

SELECT name AS function_name,
    SCHEMA_NAME(schema_id) AS schema_name,
    type_desc,
    create_date,
    modify_date
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION%';
GO

D. スキーマ内の各オブジェクトの所有者を返す

次のクエリの <database_name><schema_name> をすべて有効な名前に置き換えてから、クエリを実行します。

USE <database_name>;
GO

SELECT 'OBJECT' AS entity_type,
    USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name,
    name
FROM sys.objects
WHERE SCHEMA_NAME(schema_id) = '<schema_name>'

UNION

SELECT 'TYPE' AS entity_type,
    USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name,
    name
FROM sys.types
WHERE SCHEMA_NAME(schema_id) = '<schema_name>'

UNION

SELECT 'XML SCHEMA COLLECTION' AS entity_type,
    COALESCE(USER_NAME(xsc.principal_id), USER_NAME(s.principal_id)) AS owner_name,
    xsc.name
FROM sys.xml_schema_collections AS xsc
INNER JOIN sys.schemas AS s
    ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO