sys.sql_modules (Transact-SQL)

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL simAzure Synapse Analytics simParallel Data Warehouse

retorna uma linha para cada objeto que é um SQL módulo definido pelo idioma no SQL Server , incluindo a função escalar definida pelo usuário e 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 type coluna 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 nvarchar(max) Texto SQL que define esse módulo. Esse valor também pode ser obtido usando o OBJECT_DEFINITION função interna.

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. Essa 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 recompile.
null_on_null_input bit O módulo foi declarado para produzir uma NULL saída em qualquer NULL entrada.
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 executar como SELF ou EXECUTE AS <principal> .

-2 = EXECUTE AS OWNER.
uses_native_compilation bit Aplica-se a: do SQL Server 2014 (12.x) ao SQL Server 2014 (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 é inlineável ou não. A inlineização se baseia nas condições especificadas aqui.

0 = não embutido

1 = é inlineável.

Para UDFs (funções definidas pelo usuário) escalares, o valor será 1 se o UDF for inlineável e 0 caso contrário. Ele sempre contém um 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 a inalinhamento está ativada para o módulo no momento.

0 = a inalinhamento está desativada

1 = a inalinhamento está ativada.

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

Comentários

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

essas informações também são descritas em sys.dm_db_uncontained_entities (SQL de).

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, o nome do esquema, o nome do objeto, o tipo de 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 de catálogo (Transact-SQL)
Exibições de catálogo de objeto(Transact-SQL)
consultando as perguntas frequentes sobre o catálogo do sistema SQL Server
OLTP in-memory (Otimização na memória)