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-procedureS = システム ベース テーブル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_ID、OBJECT_NAME、およびOBJECTPROPERTY組み込み関数をsys.objects
に示されているオブジェクトに適用できます。
このビューのバージョンには、システム オブジェクトを示す同じスキーマ ( sys.system_objects と呼ばれます) があります。 sys.all_objectsと呼ばれる別のビューには、システム オブジェクトとユーザー オブジェクトの両方が表示されます。 3 つのカタログ ビューはすべて同じ構造です。
このバージョンの SQL Server では、XML インデックスや空間インデックスなどの拡張インデックスは、 sys.objects
内の内部テーブルと見なされます (type
は IT
、 type_desc
は INTERNAL_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