sys.sql_modules (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse 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 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 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)