sys.fn_listextendedproperty (Transact-SQL)
Si applica a: SQL Server
database SQL di Azure Istanza gestita di SQL di Azure
Restituisce i valori delle proprietà estese degli oggetti di database.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
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 }
)
Argomenti
{ default | 'property_name' | NULL}
Nome della proprietà. property_name è sysname. I possibili valori sono default, NULL o un nome di proprietà.
{ default | 'level0_object_type' | NULL}
Utente o tipo definito dall'utente. level0_object_type è varchar(128), con valore predefinito NULL.
Gli input validi sono:
- ASSEMBLY
- CONTRACT
- EVENT NOTIFICATION
- FILEGROUP
- MESSAGE TYPE
- PARTITION FUNCTION
- PARTITION SCHEME
- REMOTE SERVICE BINDING
- ROUTE
- SCHEMA
- SERVICE
- TRIGGER
- TIPO
- USER
- NULL
Importante
USER e TYPE come tipi di livello 0 verranno rimossi in una versione futura di SQL Server. Evitare pertanto di utilizzarle in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui sono state implementate. Utilizzare SCHEMA come tipo di livello 0 anziché USER. Per TYPE utilizzare SCHEMA come tipo di livello 0 e TYPE come tipo di livello 1.
{ default | 'level0_object_name' | NULL }
Nome del tipo di oggetto di livello 0 specificato. level0_object_name è sysname con valore predefinito NULL. I possibili valori sono default, NULL o un nome di oggetto.
{ default | 'level1_object_type' | NULL }
Tipo di oggetto di livello 1. level1_object_type è varchar(128) con valore predefinito NULL.
Gli input validi sono:
- AGGREGATE
- DEFAULT
- FUNCTION
- NOME FILE LOGICO
- PROCEDURE
- QUEUE
- RULE
- SYNONYM
- TABLE
- TIPO
- VIEW
- XML SCHEMA COLLECTION
- NULL
Nota
Per il valore predefinito viene eseguito il mapping a NULL e per il parametro 'default' viene eseguito il mapping al tipo di oggetto DEFAULT.
{default | 'level1_object_name' |NULL }
Nome del tipo di oggetto di livello 1 specificato. level1_object_name è sysname con valore predefinito NULL. I possibili valori sono default, NULL o un nome di oggetto.
{ default | 'level2_object_type' |NULL }
Tipo di oggetto di livello 2. level2_object_type è varchar(128) con valore predefinito NULL.
Gli input validi sono:
- DEFAULT
- default (esegue il mapping a NULL)
- NULL. Gli input validi per level2_object_type sono:
- COLUMN
- CONSTRAINT
- EVENT NOTIFICATION
- INDEX
- PARAMETER
- TRIGGER
- NULL
{ default | 'level2_object_name' |NULL }
Nome del tipo di oggetto di livello 2 specificato. level2_object_name è sysname con valore predefinito NULL. I possibili valori sono default, NULL o un nome di oggetto.
Tabelle restituite
Il formato delle tabelle restituite da fn_listextendedproperty è il seguente.
Nome colonna | Tipo di dati |
---|---|
objtype | sysname |
objname | sysname |
name | sysname |
value | sql_variant |
Se la tabella restituita è vuota, significa che all'oggetto non sono associate proprietà estese o che l'utente non è autorizzato a elencare le proprietà estese dell'oggetto. In caso di restituzione di proprietà estese per il database, le colonne objtype e objname saranno NULL.
Osservazioni:
Se il valore per property_name è NULL o predefinito, fn_listextendedproperty restituisce tutte le proprietà per l'oggetto specificato.
Se è specificato il tipo di oggetto e il valore del nome oggetto corrispondente è NULL o default, fn_listextendedproperty restituisce tutte le proprietà estese di tutti gli oggetti del tipo specificato.
Gli oggetti si differenziano in base al livello compreso tra 0, il livello superiore, e 2, il livello inferiore. Se si specificano il nome e il tipo di un oggetto di livello inferiore (1 o 2), per il tipo e il nome dell'oggetto padre è necessario assegnare valori diversi da NULL o dal valore predefinito. In caso contrario, la funzione restituisce un set di risultati vuoto.
objname viene corretto come Latin1_General_CI_AI. Tuttavia, è possibile risolvere questo problema eseguendo l'override delle regole di confronto in confronto.
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';
Autorizzazioni
Le autorizzazioni per elencare le proprietà estese degli oggetti variano in base al tipo di oggetto.
Esempi
R. Visualizzazione delle proprietà estese in un database
Nell'esempio seguente vengono visualizzate tutte le proprietà estese impostate in un oggetto di database.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(default, default, default, default, default, default, default);
GO
Questo è il set di risultati.
objtype objname name value
--------- --------- ----------- ----------------------------
NULL NULL MS_Description AdventureWorks2008 Sample OLTP Database
(1 row(s) affected)
B. Visualizzazione delle proprietà estese in tutte le colonne di una tabella
Nell'esempio seguente vengono elencate le proprietà estese per le colonne della ScrapReason
tabella. inclusa nello schema Production
.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);
GO
Questo è il set di risultati.
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. Visualizzazione delle proprietà estese in tutte le tabelle incluse in uno schema
Nell'esempio seguente vengono elencate le proprietà estese per tutte le tabelle contenute nello Sales
schema.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO
Vedi anche
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)