Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
ネイティブ コンパイル スカラー ユーザー定義関数を含む、SQL Server の SQL 言語定義モジュールである各オブジェクトの行を返します。
P
、RF
、V
、TR
、FN
、IF
、TF
、R
の種類のオブジェクトには、SQL モジュールが関連付けられています。 スタンドアロンの既定値( D
型のオブジェクト)にも、このビューに SQL モジュール定義があります。 これらの型の説明については、type
カタログ ビューの 列を参照してください。
詳しくは、「インメモリ OLTP でのユーザー定義のスカラー関数」をご覧ください。
Column name | Data type | Description |
---|---|---|
object_id |
int | このオブジェクトが属するオブジェクトの ID です。 データベース内で一意です。 |
definition |
nvarchar(max) | このモジュールを定義する SQL テキスト。 この値は、OBJECT_DEFINITION 組み込み関数を使って取得することもできます。NULL = Encrypted。 |
uses_ansi_nulls |
bit | モジュールは SET ANSI_NULLS ON で作成されました。ルールと既定値は常に 0 。 |
uses_quoted_identifier |
bit | モジュールは SET QUOTED_IDENTIFIER ON で作成されました。 |
is_schema_bound |
bit | モジュールは、 SCHEMABINDING オプションを使用して作成されました。ネイティブ コンパイル ストアド プロシージャの 1 の値が常に含まれます。 |
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。NULL 既定で、または EXECUTE AS CALLER 場合。EXECUTE AS SELF またはEXECUTE AS <principal> 場合は、指定したプリンシパルの ID。-2
=
EXECUTE AS OWNER 。 |
uses_native_compilation |
bit |
0 = ネイティブ コンパイルではない1 = ネイティブ コンパイル既定値は 0 です。適用対象: SQL Server 2014 (12.x) 以降のバージョン。 |
is_inlineable |
bit | モジュールをインライン化できるかどうかを示します。 インライン化可能性は、 要件で指定された条件に基づきます。0 = インライン化できません1 = インライン化できます。スカラー ユーザー定義関数 (UDF) の場合、UDF をインライン化できる場合は値が 1 され、それ以外の場合は 0 。 常に、インライン テーブル値関数 (TVF) の 1 の値と、他のすべてのモジュールの種類の 0 が含まれます。適用対象: SQL Server 2019 (15.x) 以降のバージョン。 |
inline_type |
bit | 現在モジュールのインライン化が有効になっているかどうかを示します。 0 = インライン化は無効です 1 = インライン化は有効です。 スカラー ユーザー定義関数 (UDF) の場合、インライン化が有効になっている場合 (明示的または暗黙的) に値が 1 されます。 この値は、インライン テーブル値関数 (TVF) の場合は常に 1 され、他のモジュール型の場合は 0 されます。適用対象: SQL Server 2019 (15.x) 以降のバージョン。 |
Remarks
DEFAULT
制約の SQL 式 (D
型のオブジェクト) は、sys.default_constraints カタログ ビューにあります。
CHECK
制約の SQL 式 (C
型のオブジェクト) は、sys.check_constraints カタログ ビューにあります。
この情報については、sys.dm_db_uncontained_entitiesでも説明 します。
ストアド プロシージャ、関数、ビュー、またはトリガーの名前を変更しても、 sys.sql_modules
カタログ ビューの定義列の対応するオブジェクトの名前や、 OBJECT_DEFINITION 組み込み関数によって返される定義は変更されません。 このため、 sp_rename
を使用してこれらのオブジェクトの種類の名前を変更しないことをお勧めします。 代わりに、新しい名前でオブジェクトを削除して再作成します。 詳細については、 sp_renameを参照してください。
Permissions
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
Examples
次の例では、現在のデータベースの各モジュールの object_id、スキーマ名、オブジェクト名、オブジェクトの種類、定義が返されます。
SELECT sm.object_id,
ss.[name] AS [schema],
o.[name] AS object_name,
o.[type],
o.[type_desc],
sm.[definition]
FROM sys.sql_modules AS sm
INNER JOIN sys.objects AS o
ON sm.object_id = o.object_id
INNER JOIN sys.schemas AS ss
ON o.schema_id = ss.schema_id
ORDER BY o.[type], ss.[name], o.[name];