Udostępnij za pośrednictwem


Przebudowywanie procedur przechowywanych, funkcji

W tym temacie opisano sposób ustalania, czy ponownego wpisywania istniejących logiki procedura składowana, funkcji zdefiniowanej przez użytkownika.Na przykład jeśli chcesz wywołać procedura składowana bezpośrednio z kwerendy przepakowania kod w funkcja zdefiniowanej przez użytkownika.

Ogólnie, jeżeli procedura składowana zwraca zdefiniować, pojedynczego zestaw wyników, funkcja zwracająca tabelę.Jeśli procedura składowana oblicza wartość wartość skalarna, należy zdefiniować funkcja wartość skalarna.

Kryteria dla funkcji oródwierszową

Jeśli procedura składowana spełnia następujące kryteria, jest dobrym jest przepisany funkcja zwracająca tabelę:

  • Logika jest można wyrazić w pojedynczym wybierz instrukcja , ale jest tylko ze względu na potrzebę parametrów procedura składowana, zamiast widoku.W tym scenariuszu może być obsługiwane z wbudowanego funkcja zwracająca tabelę.

  • procedura składowana wykonuje operacje aktualizacji z wyjątkiem do zmiennych Tabela.

  • Nie jest konieczne dla dynamicznych instrukcji EXECUTE

  • Procedura składowana zwraca jeden zestaw wyników.

  • Podstawowym celem procedura składowana jest utworzenie wyniki pośrednich, które mają być ładowane do tabela tymczasowa, który jest następnie zbadać w instrukcja SELECT.WSTAW...SZEFOWIE sprawozdania mogą być zapisywane przy użyciu tabela-wycenione funkcji.Na przykład rozważmy następującą sekwencję:

    INSERT #temp EXEC sp_getresults
    SELECT ...
    FROM #temp, t1
    WHERE ...
    

    Sp_getresults procedura składowana można przepisany funkcja zwracająca tabelę, na przykład fn_results(), co oznacza poprzedniego sprawozdania mogą być przepisany:

    INSERT #temp
    SELECT ...
    FROM fn_results(), t1
    WHERE ...
    

Przebudowywanie rozszerzone procedury przechowywane przy użyciu środowiska CLR

Funkcje CLR zapewnia bardziej niezawodne i skalowalne alternatywą do rozszerzonych procedur przechowywanych.Wiele rozszerzone procedury przechowywane wykonać niektóre zadania obliczeniowego jest trudniejsza do wyrażenia w Transact-SQL.Takie procedury przechowywane mogą przebudowywany przy użyciu środowiska CLR, biorąc pod uwagę korzyści opisane powyżej.Ponadto rozszerzonych procedur przechowywanych, które zwracają zestawy wyników, uzyskując dostęp do zasób zewnętrznego, takiego jak plik lub usługa sieci Web można przebudowywany przy użyciu środowiska CLR funkcja zwracająca tabelę.Aby uzyskać więcej informacji, zobacz Tworzenie funkcji CLR.