sys.sql_modules (Transact-SQL)

Retorna uma linha para cada objeto que é um módulo definido em linguagem SQL. Objetos de tipo P, RF, V, TR, FN, IF, TF e R têm um módulo SQL associado. Padrões autônomos, objetos de tipo D, também têm uma definição de módulo SQL nessa exibição. Para obter uma descrição desses tipos, consulte a coluna tipo na exibição do catálogo sys.objects.

Nome da coluna

Tipo de dados

Descrição

object_id

int

ID do objeto contentor. É exclusivo em um banco de dados.

definition

nvarchar(max)

Texto SQL que define esse módulo.

NULL = Criptografado.

uses_ansi_nulls

bit

O módulo foi criado com SET ANSI_NULLS ON.

Sempre será = 0 para regras e padrões.

uses_quoted_identifier

bit

O módulo foi criado com SET QUOTED_IDENTIFIER ON.

is_schema_bound

bit

O módulo foi criado com a opção SCHEMABINDING.

uses_database_collation

bit

1 = A definição de módulo associada a esquema depende do agrupamento padrão do banco de dados para avaliação correta; caso contrário, 0. Tal dependência impede a alteração do agrupamento padrão do banco de dados.

is_recompiled

bit

O procedimento foi criado com a opção WITH RECOMPILE.

null_on_null_input

bit

O módulo foi declarado para produzir uma saída NULL em qualquer entrada NULL.

execute_as_principal_id

Int

ID da entidade do banco de dados EXECUTE AS.

NULL por padrão ou se EXECUTE AS CALLER.

ID da entidade especificada, se EXECUTE AS SELF ou EXECUTE AS <principal>.

-2 = EXECUTE AS OWNER.

Comentários

A expressão SQL para uma restrição DEFAULT, objeto de tipo D, é encontrada na exibição do catálogo sys.default_constraints. A expressão SQL para uma restrição CHECK, objeto de tipo C, é encontrada na exibição do catálogo sys.check_constraints.

Permissões

No SQL Server 2005 e em versões posteriores, a visibilidade de metadados em exibições do catálogo é limitada a protegíveis que um usuário possui ou para os quais recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Exemplos

O exemplo a seguir retorna o nome, o tipo e a definição de cada módulo no banco de dados 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