Compartilhar via


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 análise do SQLWarehouse 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, , RF, V, TR, FN, , IF, TFe R têm um módulo SQL associado. Os padrões autônomos, objetos do 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.

Column name Data type Description
object_id int ID do objeto contentor. É exclusivo em um banco de dados.
definition 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 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 SCHEMABINDING a opção.

Sempre contém um valor para 1 procedimentos armazenados compilados nativamente.
uses_database_collation bit 1 = A definição do módulo associado ao esquema depende da ordenação 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 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 EXECUTE AS de banco de dados.

NULL por padrão 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 padrão é 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 sublinhado.

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

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores.
inline_type bit 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 sublinhado estiver ativado (explicitamente 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 .

Essas informações também são descritas 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 do modo de exibição de sys.sql_modules catálogo ou a definição retornada pelo OBJECT_DEFINITION função interna. 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 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.

Examples

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
     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];