Proprietà membro MDX - Proprietà membro intrinseche

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Analysis Services espone le proprietà intrinseche sui membri della dimensione che è possibile includere in una query per restituire dati o metadati aggiuntivi da usare in un'applicazione personalizzata o per facilitare l'analisi o la costruzione di 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, KEYxe NAME, che sono proprietà esposte da ogni membro a qualsiasi livello. È anche possibile restituire informazioni sulla posizione, ad esempio LEVEL_NUMBER o PARENT_UNIQUE_NAME.

In base al modo in cui si costruisce la query e all'applicazione client che si utilizza per eseguire le query, le proprietà dei membri possono essere visibili o meno nel set dei risultati. Se si utilizza SQL Server Management Studio per eseguire i test o le query, è possibile fare doppio clic su un membro nel set di risultati per aprire la finestra di dialogo Proprietà membro, nella quale sono indicati i valori di ciascuna proprietà del membro intrinseca.

Per un'introduzione all'uso e alla visualizzazione delle proprietà del membro di dimensione, vedere Viewing SSAS Member Properties within an MDX Query Window in SSMS (Visualizzazione delle proprietà del membro SSAS in una finestra di query MDX in SSMS).

Nota

Come provider conforme alla sezione OLAP della specifica OLE DB datata marzo 1999 (2.6), Microsoft SQL Server SQL Server Analysis Services supporta le proprietà intrinseche del membro elencate in questo argomento.

I provider diversi da SQL ServerSQL Server Analysis Services possono supportare proprietà intrinseche aggiuntive. 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à del membro intrinseco supportate da SQL Server SQL Server Analysis Services sono di due tipi:

Proprietà dei membri sensibili al contesto
Queste proprietà del membro 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.

Notare come nell'esempio seguente è incluso il percorso per la proprietà KEY : MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY").

Proprietà dei membri non sensibili al contesto
Queste proprietà del membro 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 informazioni sul percorso. Notare che nel seguente esempio per PARENT_UNIQUE_NAME non è specificato alcun livello né alcuna dimensione: 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 alle proprietà è necessario usare la parola chiave PROPERTIES .

Le sezioni seguenti descrivono sia le diverse proprietà del membro intrinseco sensibili al contesto disponibili in SQL Server SQL Server Analysis Services che le proprietà intrinseche sensibili al contesto e come usare la 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.
Chiave 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 le chiavi composte e non composte, ma è utilizzato principalmente per le chiavi composte.

Le chiavi KEY0, KEY1, KEY2 e via di seguito formano collettivamente una chiave composta. È possibile utilizzare ciascuna chiave in modo indipendente in una query per restituire la parte corrispondente della chiave composta. Se ad esempio si specifica KEY0, viene restituita la prima parte della chiave composta, se si specifica KEY1 viene restituita la parte successiva e così via.

Se la chiave non è composta, KEY0 equivale a Key.

Notare che KEYx può essere usata sia in contesto che fuori contesto. Per questo motivo appare in entrambi gli elenchi.

Per un esempio di come usare la proprietà dei membri, vedere A Simple MDX Tidbit: Key0, Key1, Key2(Tidbit MDX semplice: Key0, Key1, Key2).
Nome 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 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 altre informazioni sul set di righe dello schema MEMBERS , vedere MDSCHEMA_MEMBERS set di righe.

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 restituiscono la migliore stima possibile.
CUSTOM_ROLLUP Espressione di membro personalizzata.
CUSTOM_ROLLUP_PROPERTIES Proprietà personalizzate del membro.
DESCRIZIONE 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 equivale a Key.

Le chiavi KEY0, KEY1, KEY2 e via di seguito formano collettivamente una chiave composta. È possibile fare riferimento a ciascuna chiave in modo indipendente in una query per restituire la parte corrispondente della chiave composta. Se ad esempio si specifica KEY0, viene restituita la prima parte della chiave composta, se si specifica KEY1 viene restituita la parte successiva e così via.

Notare che KEYx può essere usata sia in contesto che fuori contesto. Per questo motivo appare in entrambi gli elenchi.

Per un esempio di come usare la proprietà dei membri, vedere A Simple MDX Tidbit: Key0, Key1, Key2(Tidbit MDX semplice: Key0, Key1, Key2).
LCIDx Conversione della didascalia del membro del valore esadecimale dell'ID impostazioni locali, dove x è il valore decimale dell'ID 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. Di seguito vengono indicati i possibili valori della proprietà.

MDMEMBER_TYPE_REGULAR

MDMEMBER_TYPE_ALL

MDMEMBER_TYPE_FORMULA

MDMEMBER_TYPE_MEASURE

MDMEMBER_TYPE_UNKNOWN



Nota: 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. Viene restituitoNULL 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: [dimension].[level].[key6].

Sintassi della parola chiave PROPERTIES per le proprietà non sensibili al contesto

Usare la sintassi seguente per specificare una proprietà intrinseca di un membro 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 è tentato di qualificare la proprietà con una dimensione o un livello, come in Dimension.DESCRIPTION o Level.DESCRIPTION, l'istruzione non verrà convalidata.

Esempio

Negli esempi seguenti vengono illustrate query MDX che restituiscono proprietà intrinseche.

Esempio 1: utilizzare proprietà intrinseche sensibili al contesto in una query

Nell'esempio seguente vengono restituiti l'ID padre, la chiave e il nome per ciascuna categoria di prodotti. Notare il modo in cui le proprietà sono esposte come misure. Ciò consente di visualizzare le proprietà in un set di celle quando si esegue la query, anziché nella finestra di dialogo Proprietà membro in SSMS. Questo tipo di query può essere eseguito per recuperare i 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: utilizzare proprietà intrinseche non sensibili al contesto

Nell'esempio seguente è riportato l'elenco completo delle proprietà intrinseche non sensibili al contesto. Dopo aver eseguito la 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à dei membri 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

PeriodsToDate (MDX)
Children (MDX)
Hierarchize (MDX)
Count (Set) (MDX)
Filter (MDX)
AddCalculatedMembers (MDX)
DrilldownLevel (MDX)
Properties (MDX)
PrevMember (MDX)
Utilizzo delle proprietà dei membri (MDX)
Guida di riferimento alle funzioni MDX (MDX)