Export (0) Print
Expand All
Expand Minimize

sys.sql_modules (Transact-SQL)

Returns a row for each object that is an SQL language-defined module in SQL Server. Objects of type P, RF, V, TR, FN, IF, TF, and R have an associated SQL module. Stand-alone defaults, objects of type D, also have an SQL module definition in this view. For a description of these types, see the type column in the sys.objects catalog view.

Applies to: SQL Server (SQL Server 2008 through current version), Azure SQL Database.

Column name

Data type

Description

object_id

int

ID of the object of the containing object. Is unique within a database.

definition

nvarchar(max)

SQL text that defines this module.

NULL = Encrypted.

uses_ansi_nulls

bit

Module was created with SET ANSI_NULLS ON.

Will always be = 0 for rules and defaults.

uses_quoted_identifier

bit

Module was created with SET QUOTED_IDENTIFIER ON.

is_schema_bound

bit

Module was created with SCHEMABINDING option.

Always contains a value of 1 for natively compiled stored procedures.

uses_database_collation

bit

1 = Schema-bound module definition depends on the default-collation of the database for correct evaluation; otherwise, 0. Such a dependency prevents changing the database's default collation.

is_recompiled

bit

Procedure was created WITH RECOMPILE option.

null_on_null_input

bit

Module was declared to produce a NULL output on any NULL input.

execute_as_principal_id

Int

ID of the EXECUTE AS database principal.

NULL by default or if EXECUTE AS CALLER.

ID of the specified principal if EXECUTE AS SELF or EXECUTE AS <principal>.

-2 = EXECUTE AS OWNER.

uses_native_compilation

bit

0 = not natively compiled

1 = is natively compiled

The default value is 0.

Applies to: SQL Server 2014 through SQL Server 2014.

The SQL expression for a DEFAULT constraint, object of type D, is found in the sys.default_constraints catalog view. The SQL expression for a CHECK constraint, object of type C, is found in the sys.check_constraints catalog view.

This information is also described in sys.dm_db_uncontained_entities (Transact-SQL).

The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. For more information, see Metadata Visibility Configuration.

The following example returns the name, type, and definition of each module in the current database.

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
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft