Partilhar via


sys.sql_módulos (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL 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 do tipo P, , , RFV, TR, FN, , IFe TF têm um módulo SQL associadoR. Padrões autônomos, objetos do tipo D, também têm uma definição de módulo SQL nesta 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 User-Defined escalares para In-Memory OLTP.

Nome da coluna Tipo de dados Description
object_id int ID do objeto que o contém. É exclusivo dentro de um banco de dados.
definition nvarchar(max) Texto SQL que define este módulo. Este valor também pode ser obtido usando a função OBJECT_DEFINITION built-in.

NULL = Encriptado.
uses_ansi_nulls bit O módulo foi criado com SET ANSI_NULLS ON.

Sempre 0 para regras e inadimplências.
uses_quoted_identifier bit O módulo foi criado com SET QUOTED_IDENTIFIER ON.
is_schema_bound bit Módulo foi criado com SCHEMABINDING opção.

Sempre contém um valor de 1 para procedimentos armazenados compilados nativamente.
uses_database_collation bit 1 = A definição do módulo vinculado ao esquema depende do agrupamento padrão do banco de dados para uma 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 Procedimento foi criado WITH RECOMPILE opção.
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 ID da EXECUTE AS entidade de banco de dados.

NULL por defeito ou se EXECUTE AS CALLER.
ID da entidade de segurança especificada se EXECUTE AS SELF ou EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = não compilado nativamente
1 = é compilado nativamente

O valor predefinido é 0.

Aplica-se a: SQL Server 2014 (12.x) e versões posteriores.
is_inlineable bit Indica se o módulo pode ser embutido ou não. A inlineabilidade baseia-se nas condições especificadas nos requisitos.

0 = não pode ser embutido
1 = pode ser embutido.

Para funções escalares definidas pelo usuário (UDFs), o valor é 1 se o UDF pode ser embutido e 0 de outra forma. Ele sempre contém um valor de para funções com valor de tabela embutido (TVFs) e 1 para todos os outros tipos de 0 módulo.

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores.
inline_type bit Indica se o inlining está ativado para o módulo atualmente.
0 = inlining está desligado
1 = inlining está ligado.
Para funções escalares definidas pelo usuário (UDFs), o valor é 1 se o inlining estiver ativado (explícita ou implicitamente). O valor é sempre 1 para TVFs (funções com valor de tabela embutidas) e 0 para outros tipos de módulo.

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores.

Remarks

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

Esta informação também é descrita em sys.dm_db_uncontained_entities.

Renomear um procedimento armazenado, função, exibição ou gatilho não altera o nome do objeto correspondente na coluna de definição da sys.sql_modules exibição de catálogo ou a definição retornada pela função interna OBJECT_DEFINITION . Por esse motivo, recomendamos que você não use sp_rename para renomear esses tipos de objeto. Em vez disso, solte e recrie o objeto com seu novo nome. Saiba mais em sp_rename.

Permissions

A visibilidade dos metadados nas visualizações de catálogo é limitada aos itens de segurança que um utilizador possui ou nos quais o utilizador recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Examples

O exemplo a seguir retorna a 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
     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];