sys.sql_modules (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Retorna uma linha para cada objeto que é um módulo definido pela linguagem SQL no SQL Server, incluindo a função escalar definida pelo usuário compilada nativamente. 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 type na exibição do catálogo sys.objects.

Para obter mais informações, consulte Funções escalares definidas pelo usuário para OLTP in-memory.

Nome da coluna Tipo de dados Descrição
object_id int ID do objeto contentor. É exclusivo em um banco de dados.
definição nvarchar(max) Texto SQL que define esse módulo. Esse valor também pode ser obtido usando a função interna OBJECT_DEFINITION.

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.

Sempre contém um valor de 1 para procedimentos armazenados compilados nativamente.
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 da ordenação 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 A identificação do principal de banco de dados EXECUTE AS.

NULL por padrão ou se EXECUTE AS CALLER.

ID da entidade de segurança especificada, se EXECUTE AS SELF ou EXECUTE AS <entidade de segurança>.

-2 = EXECUTE AS OWNER.
uses_native_compilation bit Aplica-se a: do SQL Server 2014 (12.x) ao SQL Server 2014 R2 (12.x).

0 = não compilado originalmente

1 = é compilado originalmente

O valor padrão é 0.
is_inlineable bit Aplica-se a: SQL Server 2019 (15.x) e posterior.

Indica se o módulo é embutido ou não. A capacidade de embutir é baseada nas condições especificadas aqui.

0 = não está embutido

1 = está embutido.

Para UDFs (funções escalares definidas pelo usuário), o valor será 1 se a UDF for embutida e, caso contrário, 0. Ele sempre contém o valor de 1 para TVFs (funções com valor de tabela) embutidas e 0 para todos os outros tipos de módulo.
inline_type bit Aplica-se a: SQL Server 2019 (15.x) e posterior.

Indica se o embutimento está ativado para o módulo no momento.

0 = embutimento está desativado

1 = embutimento está ativado.

Para UDFs (funções escalares definidas pelo usuário), o valor será 1 se o embutimento estiver ativado (explicitamente ou implicitamente). O valor sempre será 1 para TVFs (funções com valor de tabela) embutidas e 0 para outros tipos de módulo.

Comentários

A expressão SQL de 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.

Essas informações também são descritas em sys.dm_db_uncontained_entities (Transact-SQL).

Renomear um procedimento armazenado, uma função, uma exibição ou um gatilho não alterará o nome do objeto correspondente na coluna de definição da exibição do catálogo sys.sql_modules ou a definição retornada pela função interna OBJECT_DEFINITION. Por isso, é recomendável que sp_rename não seja usado para renomear esses tipos de objetos. Em vez disso, cancele e recrie o objeto com o nome novo. Saiba mais em sp_rename (Transact-SQL).

Permissões

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplos

O exemplo a seguir retorna o object_id, nome do esquema, nome do objeto, tipo do objeto e a definição de cada módulo no banco de dados atual.

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     
JOIN sys.objects AS o 
    ON sm.object_id = o.object_id  
JOIN sys.schemas AS ss
    ON o.schema_id = ss.schema_id  
ORDER BY 
      o.[type]
    , ss.[name]
    , o.[name];  

Consulte Também

Exibições do Catálogo (Transact-SQL)
Exibições do catálogo de objeto (Transact-SQL)
Consultando as perguntas frequentes do catálogo do sistema do SQL Server
OLTP na memória (otimização na memória)