Partilhar via


sys.fn_listextendedproperty (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna valores de propriedade estendidos de objetos de banco de dados.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
fn_listextendedproperty (   
    { default | 'property_name' | NULL }   
  , { default | 'level0_object_type' | NULL }   
  , { default | 'level0_object_name' | NULL }   
  , { default | 'level1_object_type' | NULL }   
  , { default | 'level1_object_name' | NULL }   
  , { default | 'level2_object_type' | NULL }   
  , { default | 'level2_object_name' | NULL }   
  )   

Argumentos

{ padrão | 'property_name' | NULO}
É o nome da propriedade. property_name é sysname. As entradas válidas são default, NULL ou um nome de propriedade.

{ padrão | 'level0_object_type' | NULO}
É o usuário ou tipo definido pelo usuário. level0_object_type é varchar(128), com um padrão de NULL.
As entradas válidas são:

  • ASSEMBLY
  • CONTRACT
  • EVENT NOTIFICATION
  • GRUPO DE ARQUIVOS
  • MESSAGE TYPE
  • PARTITION FUNCTION
  • PARTITION SCHEME
  • REMOTE SERVICE BINDING
  • ROUTE
  • SCHEMA
  • SERVICE
  • TRIGGER
  • TYPE
  • USER
  • NULO

Importante

USER e TYPE como tipos de nível 0 serão removidos em uma versão futura do SQL Server. Evite usar esses recursos em novo trabalho de desenvolvimento e planeje modificar os aplicativos que os usam atualmente. Use SCHEMA como o tipo de nível 0 em vez de USER. Para TYPE, use SCHEMA como o tipo de nível 0 e TYPE como o tipo de nível 1.

{ padrão | 'level0_object_name' | NULO }
É o nome do tipo de objeto de nível 0 especificado. level0_object_name é sysname com um padrão de NULL. As entradas válidas são default, NULL ou um nome de objeto.

{ padrão | 'level1_object_type' | NULO }
É o tipo de objeto de nível 1. level1_object_type é varchar(128) com um padrão de NULL.
As entradas válidas são:

  • AGGREGATE
  • DEFAULT
  • FUNCTION
  • NOME DO ARQUIVO LÓGICO
  • PROCEDURE
  • QUEUE
  • RULE
  • SYNONYM
  • TABLE
  • TYPE
  • VIEW
  • XML SCHEMA COLLECTION
  • NULO

Observação

O padrão é mapeado para NULL e 'default' é mapeado para o tipo de objeto DEFAULT.

{padrão | 'level1_object_name' |NULO }
É o nome do tipo de objeto de nível 1 especificado. level1_object_name é sysname com um padrão de NULL. As entradas válidas são default, NULL ou um nome de objeto.

{ padrão | 'level2_object_type' |NULO }
É o tipo de objeto de nível 2. level2_object_type é varchar(128) com um padrão de NULL.
As entradas válidas são:

  • DEFAULT
  • padrão (mapeia para NULL)
  • NULL. As entradas válidas para level2_object_type são:
  • COLUMN
  • CONSTRAINT
  • EVENT NOTIFICATION
  • INDEX
  • PARÂMETRO
  • TRIGGER
  • NULO

{ padrão | 'level2_object_name' |NULO }
É o nome do tipo de objeto de nível 2 especificado. level2_object_name é sysname com um padrão de NULL. As entradas válidas são default, NULL ou um nome de objeto.

Tabelas retornadas

Este é o formato das tabelas retornadas por fn_listextendedproperty.

Nome da coluna Tipo de dados
objtype sysname
objname sysname
name sysname
value sql_variant

Se a tabela retornada estiver vazia, o objeto não terá propriedades estendidas ou o usuário não terá permissões para listar as propriedades estendidas do objeto. Ao retornar propriedades estendidas do próprio banco de dados, as colunas objtype e objname serão NULL.

Comentários

Se o valor de property_name for NULL ou padrão, fn_listextendedproperty retornará todas as propriedades do objeto especificado.

Quando o tipo do objeto for especificado e o valor do nome do objeto correspondente for NULL ou default, fn_listextendedproperty retornará todas as propriedades estendidas de todos os objetos do tipo especificado.

Os objetos são diferenciados de acordo com níveis, em que nível 0 é o mais alto e nível 2 é o mais baixo. Se um objeto de nível inferior, nível 1 ou 2, um tipo e um nome forem especificados, o tipo e o nome do objeto pai deverão receber valores que não sejam NULL ou default. Caso contrário, a função retornará um conjunto de resultados vazio.

objname é fixado como Latin1_General_CI_AI. No entanto, você pode contornar isso substituindo a ordenação em comparação.

SELECT o.[object_id] AS 'table_id', o.[name] 'table_name',  
0 AS 'column_order', NULL AS 'column_name', NULL AS 'column_datatype',  
NULL AS 'column_length', Cast(e.value AS varchar(500)) AS 'column_description'  
FROM AdventureWorks.sys.objects AS o  
LEFT JOIN sys.fn_listextendedproperty(N'MS_Description', N'user',N'HumanResources',N'table', N'Employee', null, default) AS e  
    ON o.name = e.objname COLLATE SQL_Latin1_General_CP1_CI_AS  
WHERE o.name = 'Employee';  

Permissões

As permissões para listar propriedades estendidas de objetos variam por tipo de objeto.

Exemplos

a. Exibindo propriedades estendidas em um banco de dados

O exemplo a seguir exibe todas as propriedades estendidas definidas no próprio objeto do banco de dados.

USE AdventureWorks2022;  
GO  
SELECT objtype, objname, name, value  
FROM fn_listextendedproperty(default, default, default, default, default, default, default);  
GO  

Veja a seguir o conjunto de resultados.

objtype objname name value

--------- --------- ----------- ----------------------------

NULL NULL MS_Description AdventureWorks2008 Sample OLTP Database

(1 row(s) affected)

B. Exibindo propriedades estendidas em todas as colunas de uma tabela

O exemplo a seguir lista as propriedades estendidas para colunas na ScrapReason tabela. Isto está contido no esquema Production.

USE AdventureWorks2022;  
GO  
SELECT objtype, objname, name, value  
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);  
GO  

Veja a seguir o conjunto de resultados.

objtype objname name value

------- ----------- ------------- ------------------------

COLUMN ScrapReasonID MS_Description Primary key for ScrapReason records.

COLUMN Name MS_Description Failure description.

COLUMN ModifiedDate MS_Description Date the record was last updated.

(3 row(s) affected)

C. Exibindo propriedades estendidas em todas as tabelas de um esquema

O exemplo a seguir lista as propriedades estendidas para todas as tabelas contidas no Sales esquema.

USE AdventureWorks2022;  
GO  
SELECT objtype, objname, name, value  
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);  
GO  

Confira também

sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)