Udostępnij za pośrednictwem


Wywołanie procedury przechowywane

Procedury przechowywane mogą być wywoływane na serwerze lub z aplikacji klient.W każdym przypadek przechowywane procedury są zawsze uruchamiane na serwerze, albo kontekst serwera lub bazy danych.Nie istnieją żadne specjalne uprawnienia wymagane do wykonać procedura składowana.Po dodaniu procedura składowana przez wirtualny plik dziennika z serwerem lub kontekstu bazy danych każdy użytkownik może wykonaj procedura składowana, jak rola użytkownika zezwala na akcje wykonać przez procedura składowana.

Wywołanie procedura składowana w języku MDX odbywa się w taki sam sposób jak wywołanie wewnętrznych funkcja MDX.Dla procedura składowana, która nie ma parametrów są używane nazwy procedury oraz pustą parę nawiasów, jak pokazano poniżej:

MyStoredProcedure()

Jeżeli procedura składowana pobiera jeden lub więcej parametrów, następnie parametry są dostarczone, w kolejności, oddzielonych przecinkami.Poniższy przykład ilustruje procedura składowana próbki z trzema parametrami:

MyStoredProcedure("Parameter1", 2, 800)

Wywołanie procedury przechowywane kwerendy MDX

W przypadku wszystkich kwerend MDX procedura składowana musi zwracać poprawne syntaktycznie typ wymagany przez wyrażenie MDX.Jeśli procedura składowana nie zwraca prawidłowego typu, wystąpi błąd MDX.Następujące przykłady demonstrują procedur przechowywanych, które zwracają zestaw element członkowski i wynik operacji matematycznych.

Zwracanie zestawu

Następujące przykłady wykonania procedura składowana o nazwie MySproc, która zwraca zestaw.W pierwszym przykładzie MySproc zwraca zestaw bezpośrednio w polu Wybierz wyrażenie.W drugim dwa przykłady MySproc zwraca zestaw jako argumentu dla funkcji Crossjoin 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 członka

W poniższym przykładzie pokazano funkcja funkcja MySproc, która zwraca element członkowski:

SELECT Descendants(MySproc(a,b,c),3) ON 0 FROM Sales

Zwracanie wyników operacji matematycznych

SELECT Country.Members on 0, MySproc(Measures.Sales) ON 1 FROM Sales

Wywoływania procedur przechowywanych z instrukcji Call

Procedury przechowywane mogą być wywoływane z spoza kontekstu kwerendy MDX przy użyciu kwerendy MDX Call instrukcja.

Tej metoda można użyć albo utworzyć wystąpienia efektów ubocznych przechowywanej kwerendy lub aplikacji uzyskanie wyniki kwerendy przechowywane.Wspólne korzystanie z Call byłoby użyć instrukcja Analysis Management Objects (AMO) do wykonywania zadań administracyjnych, które nie mają wynik zwrotu.Na przykład następujące polecenie wywołuje procedura składowana:

Call MyStoredProcedure(a,b,c)

Jedyny obsługiwany zwrócone przez procedura składowana w Call Instrukcja jest zestawu zestaw wierszy.Serializacji dla zestawu zestaw wierszy jest zdefiniowany przez XML for Analysis.Jeśli procedura składowana w Call instrukcja zwraca innego typu, jest ignorowane i nie są zwracane w formacie XML do aplikacji wywołującej.Aby uzyskać więcej informacji o języku XML zestawów wierszy analizy, zobacz XML for Analysis schematu wierszy.

Jeżeli procedura składowana zwraca.Zestaw wierszy netto, Usługi Analysis Services konwertuje wynik na serwerze, aby XML for Analysis zestawu wierszy.XML for Analysis zestaw wierszy zawsze jest zwracany przez procedura składowana w Call funkcja.Jeśli element dataset zawiera funkcje, które nie mogą być wyrażone w XML for Analysis zestawu zestaw wierszy, błąd wyników.

Procedury, które zwracają wartości void (na przykład podprocedury w języku Visual Basic) wykorzystuje się ze słowem kluczowym WYWOŁANIA.Jeśli na przykład chce użyć funkcja MyVoidFunction() w instrukcja MDX, byłoby zatrudnionych następującej składni:

CALL(MyVoidFunction)