sys.objects (Transact-SQL)
適用対象: SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
ネイティブ コンパイル スカラー ユーザー定義関数を含む、データベース内に作成されるユーザー定義のスキーマ スコープ オブジェクトごとに 1 つの行が含まれます。
詳しくは、「インメモリ OLTP でのユーザー定義のスカラー関数」をご覧ください。
注意
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 = DEFAULT (制約またはスタンドアロン) F = FOREIGN KEY 制約 PK = PRIMARY KEY 制約 R = ルール (古いスタイル、スタンドアロン) TA = アセンブリ (CLR 統合) トリガー TR = SQL トリガー UQ = UNIQUE 制約 EC = Edge 制約 |
schema_id | int | オブジェクトが含まれているスキーマの ID。 スキーマ スコープ システム オブジェクトは、常に sys スキーマまたは INFORMATION_SCHEMA スキーマに含まれています。 |
parent_object_id | int | このオブジェクトが属するオブジェクトの ID。 0 = 子オブジェクトではありません。 |
型 | char(2) | オブジェクトの種類: AF = 集計関数 (CLR) C = CHECK 制約 D = DEFAULT (制約またはスタンドアロン) F = FOREIGN KEY 制約 FN = SQL スカラー関数 FS = Assembly (CLR) スカラー関数 FT = アセンブリ (CLR) テーブル値関数 IF = SQL インライン テーブル値関数 IT = 内部テーブル P = SQL ストアド プロシージャ PC = アセンブリ (CLR) ストアド プロシージャ PG = プラン ガイド PK = PRIMARY KEY 制約 R = ルール (古いスタイル、スタンドアロン) RF = Replication-filter-procedure S = システム ベース テーブル SN = シノニム SO = Sequence オブジェクト U = Table (ユーザー定義) V = ビュー 適用対象: SQL Server 2012 (11.x) 以降。 SQ = サービス キュー TA = アセンブリ (CLR) DML トリガー TF = SQL table-valued-function TR = SQL DML トリガー TT = テーブルの種類 UQ = UNIQUE 制約 X = 拡張ストアド プロシージャ 適用対象: SQL Server 2014 (12.x) 以降、Azure SQL Database、Azure Synapse Analytics、Analytics Platform System (PDW)。 ST = STATS_TREE 適用対象: 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 = Edge 制約 |
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 | オブジェクトのスキーマのみがパブリッシュされることを示します。 |
解説
に示されているsys.objects
オブジェクトに、OBJECT_ID、OBJECT_NAME、および OBJECTPROPERTY() 組み込み関数を適用できます。
このビューのバージョンには、システム オブジェクトを示す同じスキーマ (sys.system_objectsと呼ばれます) があります。 システム オブジェクトとユーザー オブジェクトの両方を示す sys.all_objects という別のビューがあります。 3 つのカタログ ビューはすべて同じ構造です。
このバージョンのSQL Serverでは、拡張インデックス (XML インデックスや空間インデックスなど) は、 のsys.objects
内部テーブルと見なされます (型 = 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. 指定したストアド プロシージャまたは関数のパラメーターを返します
次のクエリを実行する前に、 と を<schema_name.object_name>
有効な名前に置き換えます<database_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 JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO