sys.sql_modules (Transact-SQL)
SQL 言語で定義されるモジュールであるオブジェクトごとに 1 行のデータを返します。種類が P、RF、V、TR、FN、IF、TF、および R のオブジェクトには、SQL モジュールが関連付けられています。スタンドアロンの既定値である種類 D のオブジェクトにも、このビューで SQL モジュール定義が関連付けられています。これらの型の詳細については、sys.objects カタログ ビューの type 列を参照してください。
列名 |
データ型 |
説明 |
---|---|---|
object_id |
int |
このオブジェクトが属するオブジェクトの ID です。データベース内で一意です。 |
definition |
nvarchar(max) |
このモジュールを定義する SQL テキストです。 NULL は、暗号化されていることを示します。 |
uses_ansi_nulls |
bit |
モジュールは SET ANSI_NULLS ON で作成されました。 ルールとデフォルトに対しては、常に 0 になります。 |
uses_quoted_identifier |
bit |
モジュールは SET QUOTED_IDENTIFIER ON で作成されました。 |
is_schema_bound |
bit |
モジュールは SCHEMABINDING オプションを使用して作成されました。 |
uses_database_collation |
bit |
スキーマ バインドのモジュール定義は、適切な評価のために、データベースの既定の照合順序に依存し、値は 1 となります。それ以外の場合は 0 です。このような依存関係により、データベースの既定の照合順序は変更されないようになっています。 |
is_recompiled |
bit |
プロシージャは WITH RECOMPILE オプションを使用して作成されました。 |
null_on_null_input |
bit |
モジュールは、任意の NULL 入力に対して NULL 出力を生成するように宣言されました。 |
execute_as_principal_id |
Int |
EXECUTE AS データベース プリンシパルの ID。 既定または EXECUTE AS CALLER の場合は NULL になります。 EXECUTE AS SELF または EXECUTE AS <principal> の場合は、指定されたプリンシパルの ID です。 EXECUTE AS OWNER の場合は、-2 となります。 |
説明
DEFAULT 制約 (種類 D のオブジェクト) の SQL 式は、sys.default_constraints カタログ ビューで確認できます。CHECK 制約 (種類 C のオブジェクト) の SQL 式は、sys.check_constraints カタログ ビューで確認できます。
権限
SQL Server 2005 以降のバージョンでは、カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。詳細については、「メタデータ表示の構成」を参照してください。
例
次の例は、AdventureWorks2008R2 データベース内の各モジュールの名前、型、および定義を返します。
USE AdventureWorks2008R2;
GO
SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition
FROM sys.sql_modules AS sm
JOIN sys.objects AS o ON sm.object_id = o.object_id
ORDER BY o.type;
GO