セールス: 1-800-867-1380
目次を折りたたむ
目次を展開する
展開 最小化
この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

OBJECT_ID (Transact-SQL)

スキーマ スコープ オブジェクトのデータベース オブジェクト ID 番号を返します。

重要な注意事項 重要

DDL トリガーなど、スキーマ スコープ オブジェクトでないオブジェクトは、OBJECT_ID を使用して照会できません。 sys.objects カタログ ビューにないオブジェクトについては、適切なカタログ ビューを照会してオブジェクト ID 番号を取得してください。 たとえば、DDL トリガーのオブジェクト ID 番号を取得するには、SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog' を使用します。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure SQL データベース (初回のリリースから現在のバージョンまで)

トピック リンク アイコン Transact-SQL 構文表記規則

OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] 
  object_name' [ ,'object_type' ] )

' object_name '

使用するオブジェクトを指定します。 object_name のデータ型は varchar または nvarchar です。 object_name のデータ型が varchar の場合、暗黙的に nvarchar に変換されます。 データベース名とスキーマ名の指定は省略可能です。

' object_type '

スキーマ スコープのオブジェクトの種類を指定します。 object_type のデータ型は varchar または nvarchar です。 object_type のデータ型が varchar の場合、暗黙的に nvarchar に変換されます。 オブジェクトの種類の一覧については、sys.objects (Transact-SQL)type 列を参照してください。

空間インデックスに対して、OBJECT_ID は NULL を返します。

エラーが発生した場合は NULL を返します。

ユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なリソースのメタデータのみを表示できます。 つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (OBJECT_ID など) が NULL を返す可能性があります。 詳細については、「メタデータ表示の構成」を参照してください。

システム関数のパラメーターを指定しない場合は、現在のデータベース、ホスト コンピューター、サーバー ユーザー、またはデータベース ユーザーを指定したと見なされます。 組み込み関数の後には、必ずかっこが必要です。

一時テーブル名を指定する場合は、現在のデータベースが tempdb でない限り、一時テーブル名の前にデータベース名を指定する必要があります。 たとえば、SELECT OBJECT_ID('tempdb..#mytemptable') のようにします。

システム関数は、選択リストの中、WHERE 句の中、また、式を使える所ならどこにでも使用できます。 詳細については、「式 (Transact-SQL)」および「WHERE (Transact-SQL)」を参照してください。

A. 指定したオブジェクトのオブジェクト ID を返す

次の例では、AdventureWorks2012 データベース内の Production.WorkOrder テーブルのオブジェクト ID を返します。

USE master;
GO
SELECT OBJECT_ID(N'AdventureWorks2012.Production.WorkOrder') AS 'Object ID';
GO

B. オブジェクトが存在することを確認する

次の例では、指定したテーブルにオブジェクト ID があることを確認して、テーブルが存在するかどうかをチェックします。 テーブルが存在する場合は、削除されます。 テーブルが存在しない場合、DROP TABLE ステートメントは実行されません。

USE AdventureWorks2012;
GO
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL
DROP TABLE dbo.AWBuildVersion;
GO

C. OBJECT_ID を使用して、システム関数パラメーターの値を指定する

次の例では、AdventureWorks2012 データベース内にある Person.Address テーブルのすべてのインデックスとパーティションについて、sys.dm_db_index_operational_stats 関数を使用して情報を返しています。

重要な注意事項 重要

Transact-SQL 関数 DB_ID および OBJECT_ID を使ってパラメーター値を返すときには、有効な ID が返されることを常に確認してください。 データベースまたはオブジェクト名が存在しないか、スペルが間違っていることが原因で見つからない場合は、両方の関数で NULL が返されます。 sys.dm_db_index_operational_stats 関数では、NULL 値はすべてのデータベースまたはすべてのオブジェクトを指定するワイルドカード値として解釈されます。 これによって意図しない操作が実行される可能性があるので、この例では安全な方法を使用してデータベース ID とオブジェクト ID を特定します。

DECLARE @db_id int;
DECLARE @object_id int;
SET @db_id = DB_ID(N'AdventureWorks2012');
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');
IF @db_id IS NULL 
  BEGIN;
    PRINT N'Invalid database';
  END;
ELSE IF @object_id IS NULL
  BEGIN;
    PRINT N'Invalid object';
  END;
ELSE
  BEGIN;
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);
  END;
GO
この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました

コミュニティの追加

表示:
© 2016 Microsoft