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_REGULAR

  • MDMEMBER_TYPE_ALL

  • MDMEMBER_TYPE_FORMULA

  • MDMEMBER_TYPE_MEASURE

  • MDMEMBER_TYPE_UNKNOWN

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

PeriodsToDate (MDX)

Children (MDX)

Hierarchize (MDX)

Count (Set) (MDX)

Filter (MDX)

AddCalculatedMembers (MDX)

DrilldownLevel (MDX)

Properties (MDX)

PrevMember (MDX)

Guida di riferimento alle funzioni MDX (MDX)

Concetti

Utilizzo delle proprietà dei membri (MDX)