sys.objects (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics 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 = アセンブリ (CLR) スカラー関数

FT = アセンブリ (CLR) テーブル値関数

IF = SQL インライン テーブル値関数

IT = 内部テーブル

P = ストアド プロシージャSQL

PC = アセンブリ (CLR) ストアド プロシージャ

PG = プラン ガイド

PK = PRIMARY KEY 制約

R = ルール (古いスタイル、スタンドアロン)

RF = レプリケーション フィルター プロシージャ

S = システム ベース テーブル

SN = シノニム

SO = Sequence オブジェクト

U = テーブル (ユーザー定義)

V = ビュー

EC = Edge 制約



適用対象: 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 = 外部テーブル
type_desc nvarchar(60) オブジェクトの種類の説明。

AGGREGATE_FUNCTION

CHECK_CONSTRAINT

CLR_SCALAR_FUNCTION

CLR_STORED_PROCEDURE

CLR_TABLE_VALUED_FUNCTION

CLR_TRIGGER

DEFAULT_CONSTRAINT

EXTENDED_STORED_PROCEDURE

FOREIGN_KEY_CONSTRAINT

INTERNAL_TABLE

PLAN_GUIDE

PRIMARY_KEY_CONSTRAINT

REPLICATION_FILTER_PROCEDURE

RULE

SEQUENCE_OBJECT



適用対象: SQL Server 2012 (11.x) 以降。

SERVICE_QUEUE

SQL_INLINE_TABLE_VALUED_FUNCTION

SQL_SCALAR_FUNCTION

SQL_STORED_PROCEDURE

SQL_TABLE_VALUED_FUNCTION

SQL_TRIGGER

SYNONYM

SYSTEM_TABLE

TABLE_TYPE

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 オブジェクトのスキーマのみがパブリッシュされることを示します。

Remarks

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

このビューには、システム オブジェクトを示す同じスキーマ ( 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  

参照

カタログ ビュー (Transact-SQL)
sys.all_objects (Transact-SQL)
sys.system_objects (Transact-SQL)
sys.triggers (Transact-SQL)
オブジェクト カタログ ビュー (Transact-SQL)
SQL Server システム カタログに対するクエリに関してよく寄せられる質問
sys.internal_tables (Transact-SQL)