Proprietà intrinseche dei membri (MDX)
Analysis Services espone le proprietà intrinseche dei membri di dimensione che è possibile includere in una query con cui restituire dati o metadati aggiuntivi da utilizzare in un'applicazione personalizzata o facilitare l'analisi o la creazione dei modelli. Se si utilizzano gli strumenti client di SQL Server, è possibile visualizzare le proprietà intrinseche in SQL Server Management Studio (SSMS).
Le proprietà intrinseche includono ID, KEY, KEYx e NAME, che sono proprietà esposte da ogni membro a qualsiasi livello. È inoltre possibile restituire informazioni posizionali quali, ad esempio, LEVEL_NUMBER o PARENT_UNIQUE_NAME.
A seconda della modalità di creazione della query e dell'applicazione client utilizzata per eseguire le query, le proprietà dei membri possono o meno essere visibili nel set di risultati. Se si utilizza SQL Server Management Studio per testare o eseguire le query, è possibile fare doppio clic su un membro nel set di risultati per aprire la finestra di dialogo Proprietà membro, in cui sono indicati i valori per ogni proprietà intrinseca del membro.
Per un'introduzione all'utilizzo e alla visualizzazione delle proprietà dei membri delle dimensioni, vedere l'articolo sulle proprietà dei membri SSAS in una finestra di query MDX in SSMS.
[!NOTA]
In qualità di provider conforme alla sezione OLAP della specifica OLE DB del mese di marzo 1999 (2.6), Microsoft SQL Server Analysis Services supporta le proprietà intrinseche dei membri elencate in questo argomento.
I provider diversi da SQL Server Analysis Services possono supportare ulteriori proprietà intrinseche dei membri. Per ulteriori informazioni sulle proprietà intrinseche dei membri supportate da altri provider, consultare la documentazione fornita con tali provider.
Tipi di proprietà dei membri
Le proprietà intrinseche dei membri supportate da SQL Server Analysis Services sono di due tipi:
Proprietà dei membri sensibili al contesto
Queste proprietà dei membri devono essere utilizzate nel contesto di una gerarchia o di un livello specifico e definiscono valori per ogni membro della dimensione o del livello specificato.Si noti come nell'esempio seguente sia incluso il percorso della proprietà KEY : MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY").
Proprietà dei membri non sensibili al contesto
Queste proprietà dei membri non possono essere utilizzate nel contesto di una dimensione o di un livello specifico e restituiscono i valori di tutti i membri su un asse.Le proprietà non sensibili al contesto sono autonome e non includono le informazioni sul percorso. Si noti che nell'esempio seguente non sono specificati la dimensione o il livello per PARENT_UNIQUE_NAME: DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
Indipendentemente dal fatto che una proprietà intrinseca di un membro sia sensibile o meno al contesto, valgono le regole di utilizzo seguenti:
È possibile specificare solo le proprietà intrinseche dei membri correlate ai membri delle dimensioni proiettati sull'asse.
In una stessa query è possibile includere sia richieste per proprietà dei membri sensibili al contesto che per proprietà intrinseche dei membri non sensibili al contesto.
Nelle query relative alla proprietà è necessario utilizzare la parola chiave PROPERTIES.
Nelle seguenti sezioni vengono descritte sia le proprietà intrinseche dei membri sensibili al contesto, sia quelle non sensibili al contesto disponibili in SQL Server Analysis Services. Viene inoltre indicata la modalità di utilizzo della parola chiave PROPERTIES con ogni tipo di proprietà.
Proprietà dei membri sensibili al contesto
Tutti i membri delle dimensioni e dei livelli supportano un elenco di proprietà intrinseche sensibili al contesto. Nella tabella seguente sono elencate tali proprietà sensibili al contesto.
Proprietà |
Descrizione |
---|---|
ID |
ID gestito internamente per il membro. |
Key |
Valore della chiave del membro nel tipo di dati originale. MEMBER_KEY è disponibile per compatibilità con le versioni precedenti. MEMBER_KEY ha lo stesso valore di KEY0 per le chiavi non composte e la proprietà MEMBER_KEY è Null per le chiavi composte. |
KEYx |
Chiave del membro, in cui x è il numero ordinale in base zero della chiave. KEY0 è disponibile per chiavi composte e non composte, ma utilizzata soprattutto per chiavi composte. Per le chiavi composte, KEY0, KEY1, KEY2 e così via formano collettivamente la chiave composta. È possibile utilizzarne ciascuna in modo indipendente in una query per la restituzione della parte corrispondente della chiave composta. Ad esempio, se si specifica KEY0 viene restituita la prima parte della chiave composta, se si specifica KEY1 viene restituita la parte successiva della chiave composta e così via. Se la chiave non è composta, KEY0 è equivalente a Key. Si noti che è possibile utilizzare KEYx nel contesto e senza contesto. Per questo motivo è presente in entrambi gli elenchi. Per un esempio di utilizzo di questa proprietà dei membri, vedere il relativo articolo su MDX. |
Name |
Nome del membro. |
Sintassi della parola chiave PROPERTIES per le proprietà sensibili al contesto
Queste proprietà dei membri possono essere utilizzate nel contesto di una dimensione o di un livello specifico e definiscono valori per ogni membro della dimensione o del livello specificato.
Nel caso delle proprietà dei membri di una dimensione, è necessario anteporre al nome della proprietà quello della dimensione a cui si riferisce la proprietà. La sintassi appropriata è illustrata nell'esempio seguente:
DIMENSION PROPERTIES Dimension.Property_name
Nel caso delle proprietà dei membri di un livello, è possibile anteporre al nome della proprietà solo il nome del livello oppure, per maggiore precisione, sia il nome della dimensione che quello del livello. La sintassi appropriata è illustrata nell'esempio seguente:
DIMENSION PROPERTIES [Dimension.]Level.Property_name
Si supponga ad esempio di voler restituire i nomi di tutti i membri a cui viene fatto riferimento nella dimensione [Sales]. Per restituire tali nomi, è necessario utilizzare l'istruzione seguente in una query MDX (Multidimensional Expressions):
DIMENSION PROPERTIES [Sales].Name
Proprietà dei membri non sensibili al contesto
Tutti i membri supportano un elenco di proprietà intrinseche dei membri che rimangono invariate indipendentemente dal contesto. Tali proprietà forniscono ulteriori informazioni che possono essere utilizzate dalle applicazioni per migliorare l'interazione con l'utente.
Nella tabella seguente sono elencate le proprietà intrinseche non sensibili al contesto supportate da SQL Server Analysis Services.
[!NOTA]
Le colonne nel set di righe dello schema MEMBERS supportano le proprietà intrinseche dei membri elencate nella tabella seguente. Per ulteriori informazioni sul set di righe dello schema MEMBERS, vedere Set di righe MDSCHEMA_MEMBERS.
Proprietà |
Descrizione |
---|---|
CATALOG_NAME |
Nome del cubo a cui appartiene il membro. |
CHILDREN_CARDINALITY |
Numero di elementi figlio del membro. Poiché può trattarsi di una stima, il conteggio potrebbe non essere esatto. I provider devono restituire la migliore stima possibile. |
CUSTOM_ROLLUP |
Espressione di membro personalizzata. |
CUSTOM_ROLLUP_PROPERTIES |
Proprietà personalizzate del membro. |
DESCRIPTION |
Descrizione discorsiva del membro. |
DIMENSION_UNIQUE_NAME |
Nome univoco della dimensione a cui appartiene il membro. Per i provider che generano nomi univoci tramite qualificazione, i singoli componenti di tale nome sono delimitati. |
HIERARCHY_UNIQUE_NAME |
Nome univoco della gerarchia. Se il membro appartiene a più di una gerarchia, sarà presente una riga per ogni gerarchia a cui appartiene il membro. Per i provider che generano nomi univoci tramite qualificazione, i singoli componenti di tale nome sono delimitati. |
IS_DATAMEMBER |
Valore booleano che indica se il membro è un membro dati. |
IS_PLACEHOLDERMEMBER |
Valore booleano che indica se il membro è un segnaposto. |
KEYx |
Chiave del membro, in cui x è il numero ordinale in base zero della chiave. KEY0 è disponibile per le chiavi composte e non composte. Se la chiave non è composta, KEY0 è equivalente a Key. Per le chiavi composte, KEY0, KEY1, KEY2 e così via formano collettivamente la chiave composta. È possibile fare riferimento a ciascuna di esse in modo indipendente in una query per la restituzione della parte corrispondente della chiave composta. Ad esempio, se si specifica KEY0 viene restituita la prima parte della chiave composta, se si specifica KEY1 viene restituita la parte successiva della chiave composta e così via. Si noti che è possibile utilizzare KEYx nel contesto e senza contesto. Per questo motivo è presente in entrambi gli elenchi. Per un esempio di utilizzo di questa proprietà dei membri, vedere il relativo articolo su MDX. |
LCIDx |
Conversione della didascalia del membro del valore esadecimale dell'ID delle impostazioni locali, dove x è il valore decimale dell'ID delle impostazioni locali, ad esempio LCID1009 per Inglese-Canada. È disponibile solo se nella conversione la colonna della didascalia è associata all'origine dei dati. |
LEVEL_NUMBER |
Distanza del membro dalla radice della gerarchia. Per il livello radice è zero. |
LEVEL_UNIQUE_NAME |
Nome univoco del livello a cui appartiene il membro. Per i provider che generano nomi univoci tramite qualificazione, i singoli componenti di tale nome sono delimitati. |
MEMBER_CAPTION |
Etichetta o didascalia associata al membro. La didascalia viene utilizzata soprattutto a scopo di visualizzazione. Se non esiste una didascalia, la query restituirà MEMBER_NAME. |
MEMBER_KEY |
Valore della chiave del membro nel tipo di dati originale. MEMBER_KEY è disponibile per compatibilità con le versioni precedenti. MEMBER_KEY ha lo stesso valore di KEY0 per le chiavi non composte e la proprietà MEMBER_KEY è Null per le chiavi composte. |
MEMBER_NAME |
Nome del membro. |
MEMBER_TYPE |
Tipo del membro. I possibili valori della proprietà sono i seguenti:
MDMEMBER_TYPE_FORMULA ha la precedenza rispetto a MDMEMBER_TYPE_MEASURE. Di conseguenza, se nella dimensione Measures esiste un membro di tipo formula (calcolato), la proprietà MEMBER_TYPE del membro calcolato sarà MDMEMBER_TYPE_FORMULA. |
MEMBER_UNIQUE_NAME |
Nome univoco del membro. Per i provider che generano nomi univoci tramite qualificazione, i singoli componenti di tale nome sono delimitati. |
MEMBER_VALUE |
Valore del membro nel tipo originale. |
PARENT_COUNT |
Numero di elementi padre del membro. |
PARENT_LEVEL |
Distanza dell'elemento padre del membro dal livello radice della gerarchia. Per il livello radice è zero. |
PARENT_UNIQUE_NAME |
Nome univoco del nodo padre del membro. NULL viene restituito per tutti i membri al livello di radice. Per i provider che generano nomi univoci tramite qualificazione, i singoli componenti di tale nome sono delimitati. |
SKIPPED_LEVELS |
Il numero di livelli ignorati per il membro. |
UNARY_OPERATOR |
Operatore unario per il membro. |
UNIQUE_NAME |
Nome completo del membro, nel formato seguente: [dimensione].[livello].[key6.] |
Sintassi della parola chiave PROPERTIES per le proprietà non sensibili al contesto
Utilizzare la sintassi seguente per specificare una proprietà di membro intrinseca non sensibile al contesto tramite la parola chiave PROPERTIES:
DIMENSION PROPERTIES Property
Si noti che questa sintassi non consente di qualificare la proprietà con una dimensione o un livello. La proprietà non può essere qualificata perché le proprietà intrinseche dei membri che non sono sensibili al contesto vengono applicate a tutti i membri di un asse.
Ad esempio, la sintassi dell'istruzione MDX che specifica la proprietà intrinseca dei membri DESCRIPTION è la seguente:
DIMENSION PROPERTIES DESCRIPTION
Questa istruzione restituisce la descrizione di ogni membro nella dimensione dell'asse. Se si tenta di qualificare la proprietà con una dimensione o un livello, ad esempio Dimension.DESCRIPTION o Level.DESCRIPTION, l'istruzione non verrà convalidata.
Esempio
Negli esempi seguenti vengono mostrate query MDX che restituiscono proprietà intrinseche.
Esempio 1: utilizzare le proprietà intrinseche sensibili al contesto nella query
Nell'esempio seguente vengono restituiti l'ID padre, la chiave e il nome di ogni categoria di prodotti. Notare che le proprietà vengono esposte come misure. In questo modo quando si esegue la query è possibile visualizzare le proprietà in un set di celle, anziché nella finestra di dialogo Proprietà membro in SSMS. È possibile eseguire una query simile a questa per il recupero dei metadati dei membri da un cubo già distribuito.
WITH
MEMBER [Measures].[Parent Member ID] AS
[Product].[Product Categories].CurrentMember.Parent.PROPERTIES("ID")
MEMBER [Measures].[Parent Member Key] AS
[Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")
MEMBER [Measures].[Parent Member Name] AS
[Product].[Product Categories].CurrentMember.Parent.PROPERTIES("Name")
SELECT
{[Measures].[Parent Member ID], [Measures].[Parent Member Key], [Measures].[Parent Member Name] } on COLUMNS,
[Product].[Product Categories].AllMembers on ROWS
FROM [Adventure Works]
Esempio 2: proprietà intrinseche non sensibili al contesto
Nell'esempio seguente sono elencate tutte le proprietà intrinseche non sensibili al contesto. Dopo l'esecuzione della query in SSMS, fare clic sui singoli membri per visualizzare le proprietà nella finestra di dialogo Proprietà membro.
SELECT [Measures].[Sales Amount Quota] on COLUMNS,
[Employee].[Employees].members
DIMENSION PROPERTIES
CATALOG_NAME ,
CHILDREN_CARDINALITY ,
CUSTOM_ROLLUP ,
CUSTOM_ROLLUP_PROPERTIES ,
DESCRIPTION ,
DIMENSION_UNIQUE_NAME ,
HIERARCHY_UNIQUE_NAME ,
IS_DATAMEMBER ,
IS_PLACEHOLDERMEMBER ,
KEY0 ,
LCID ,
LEVEL_NUMBER ,
LEVEL_UNIQUE_NAME ,
MEMBER_CAPTION ,
MEMBER_KEY ,
MEMBER_NAME ,
MEMBER_TYPE ,
MEMBER_UNIQUE_NAME ,
MEMBER_VALUE ,
PARENT_COUNT ,
PARENT_LEVEL ,
PARENT_UNIQUE_NAME ,
SKIPPED_LEVELS ,
UNARY_OPERATOR ,
UNIQUE_NAME
ON ROWS
FROM [Adventure Works]
WHERE [Employee].[Employee Department].[Department].&[Sales]
Esempio 3: restituire le proprietà del membro come dati in un set di risultati
Nell'esempio seguente viene restituita la didascalia tradotta del membro della categoria di prodotto della dimensione Prodotto nel cubo Adventure Works per impostazioni locali specifiche.
WITH
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")
SELECT
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0
,[Product].[Category].MEMBERS ON 1
FROM [Adventure Works]
Vedere anche
Riferimento
Guida di riferimento alle funzioni MDX (MDX)