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)