Wywoływanie procedur przechowywanych
Procedury przechowywane mogą być wywoływane na serwerze lub z aplikacji klient.W obu przypadkach przechowywane procedury, należy zawsze uruchamiać na serwerze, albo kontekst serwera lub bazy danych.Nie istnieją żadne specjalne uprawnienia wymagane do wykonać procedura przechowywana.Po dodaniu procedura przechowywana przez zespół z serwerem lub kontekstu bazy danych, każdy użytkownik może być wykonywany procedura przechowywana, tak długo, jak rola użytkownika zezwala na akcje wykonać przez procedura przechowywana.
Wywołanie procedura przechowywana w języku MDX jest wykonywane w taki sam sposób jak wywoływanie funkcja MDX wewnętrznych.Dla procedura przechowywana, które przekieruje bez parametrów są używane nazwy procedury oraz parę pustych nawiasów, jak pokazano poniżej:
MyStoredProcedure()
Jeśli jest jeden lub więcej parametrów procedura przechowywana, następnie parametry są dostarczone, w kolejności, oddzielając je średnikami.W poniższym przykładzie pokazano, procedura przechowywana próbki z trzech parametrów:
MyStoredProcedure("Parameter1", 2, 800)
Wywoływanie procedur przechowywanych w kwerendy MDX
Wszystkie kwerendy MDX procedura przechowywana musi zwracać składniowo poprawnego typu wymaganych przez wyrażenie MDX.Jeśli procedura przechowywana nie zwraca prawidłowego typu, wystąpi błąd MDX.W poniższych przykładach pokazano procedur przechowywanych, które zwracają zestaw, element członkowski i wynik operacji matematycznych.
Zwracanie zestaw
W poniższych przykładach implementuje procedura przechowywana, o nazwie MySproc, która zwraca zestaw.W pierwszym przykładzie MySproc zwraca zestaw bezpośrednio w wyrażeniu SELECT.W drugim dwa przykłady MySproc zwraca zestaw jako argumentu dla funkcji połączenia krzyżowego i DrilldownLevel.
SELECT MySetProcedure(a,b,c) ON 0 FROM Sales
SELECT Crossjoin(MySetProcedure(a,b,c)) ON 0 FROM Sales
SELECT DrilldownLevel(MySetProcedure(a,b,c)) ON 0 FROM Sales
Zwracanie element członkowski członkowski
W poniższym przykładzie pokazano funkcja MySproc funkcja, które zwraca element członkowski:
SELECT Descendants(MySproc(a,b,c),3) ON 0 FROM Sales
Zwraca wynik operacji matematycznych
SELECT Country.Members on 0, MySproc(Measures.Sales) ON 1 FROM Sales
Wywoływanie procedur przechowywanych w instrukcja Call
Procedury przechowywane mogą być wywoływane poza od kontekstu kwerendy MDX przy użyciu kwerendy MDX Call Instrukcja.
Ta metoda służy do albo efekty uboczne przechowywanej kwerendy lub do stosowania na uzyskanie wyniki kwerendy przechowywaną.Powszechnym zastosowaniem Call Instrukcja można używać do wykonywania zadań administracyjnych, które nie mają zwracanych wyników Analysis Management Objects (AMO). Na przykład następujące polecenie wywołuje procedura przechowywana:
Call MyStoredProcedure(a,b,c)
Jedyne obsługiwane zwrócone przez procedura przechowywana w Call Instrukcja jest zestawu zestaw wierszy. Serializacji dla zestawu zestaw wierszy jest zdefiniowany przez XML for Analysis.Jeśli procedura przechowywana w Call instrukcja zwróci innego typu, jest ignorowany i nie są zwracane w formacie XML do aplikacji wywołującej. Aby uzyskać więcej informacji na temat XML for Analysis zestawów wierszy, zobacz XML for Analysis schemat zestawów wierszy.
Jeśli procedura przechowywana zwraca zestawu zestaw wierszy .NET Analysis Services Konwertuje wynik na serwerze, tak aby XML for Analysis zestawu zestaw wierszy. XML for Analysis Zestawu zestaw wierszy zawsze jest zwracany przez procedura przechowywana w Call Funkcja. Czy zestawu danych zawiera funkcje, które nie mogą zostać zapisane w formacie XML do zestawu zestaw wierszy analizy, w wyniku awarii.
Procedury, które zwracają wartości typu void (na przykład podprocedury w języku Visual Basic) można również zastosować ze słowem kluczowym Wywołaj.Jeśli, na przykład, można korzystać z funkcja MyVoidFunction() w instrukcja MDX, może być zatrudniony następującej składni:
CALL(MyVoidFunction)
See Also