6

の使用法を試しているところ、MSDNで次のエントリOBJECT_IDが見つかりました。

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

データベース オブジェクトの識別番号とは何ですか。また、スキーマ スコープ オブジェクトとは何ですか。私は最初よりも混乱しているようです。

4

1 に答える 1

4

OBJECT_ID、システム ベース テーブル内でオブジェクトを一意に識別するために使用されます。

sys.sysschobjsこれは、メタデータ ビューで使用されるベース テーブル の主キーであり、sys.objects他の多くのメタデータ ビューに表示されます。例えばsys.partitions。これらのビューをクエリしていない場合object_id、以下のようにオブジェクトの存在をチェックする場合を除いて、 はあまり役に立ちません。

IF OBJECT_ID('T', 'U') IS NULL
     /*Table T does not exist or no permissions*/

スキーマ スコープ オブジェクトは、スキーマ (テーブル、ビュー、ストアド プロシージャなど) に属するオブジェクトです。MSDN の記事では、DDL トリガーの非スキーマ スコープ オブジェクトの例を示しています。

これらを作成するときにスキーマを指定しようとするとエラーになります

CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/
ON DATABASE 
FOR DROP_SYNONYM
AS 
PRINT 'SomeTrigger'

非スキーマ スコープ オブジェクトのメタデータは引き続き格納されますsys.sysschobjsが、ビューには表示されませんsys.objects

于 2012-02-21T10:48:09.283 に答える