次の方法で共有


sys.sql_modules (Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

ネイティブ コンパイル スカラー ユーザー定義関数を含む、SQL Server の SQL 言語定義モジュールである各オブジェクトの行を返します。 PRFVTRFNIFTFRの種類のオブジェクトには、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];