Udostępnij przez


Wymagania dotyczące środowiska CLR zagregowanych zdefiniowane przez użytkownika

Typu w zestawie wspólnego (CLR) w czasie wykonywania języka mogą być rejestrowane w zdefiniowanej przez użytkownika funkcja agregacja, tak długo, jak implementuje kontrakt wymaga agregacja.Niniejsza kontrakt obejmuje SqlUserDefinedAggregate atrybut i metody agregacja kontrakt. Kontrakt agregacja zawiera mechanizm do zapisywania stanu pośredniego agregacja i mechanizmem kumulują się nowe wartości, która składa się z czterech metod: Init, Accumulate, Merge, a Terminate. When you have met these requirements, you will be able to take full advantage of user-defined aggregates in Microsoft SQL Server.W poniższych sekcjach tego tematu przedstawiono dodatkowe informacje szczegółowe na temat sposobów tworzenia i pracy z zagregowanych przez użytkownika.Aby zapoznać się z przykładem zobacz Wywoływanie CLR zdefiniowane przez użytkownika funkcje agregacja.

SqlUserDefinedAggregate

Aby uzyskać więcej informacji zobacz SqlUserDefinedAggregateAttribute.

Metody agregacja

Klasa zarejestrowane jako agregacja zdefiniowanej przez użytkownika, powinien obsługiwać następujące metody wystąpienie.Są to metod używanych do obliczania agregacja procesor kwerend:

Metoda

Składnia

Description

Init

public void Init();

Procesor kwerend używa tej metoda do zainicjowania obliczenie agregacja.Ta metoda jest wywoływana raz dla każdej grupy, w którym procesor kwerend jest agregacji.Procesor kwerend można je ponownie używać tego samego wystąpienie klasy agregacja dla przetwarzania zagregowanych wielu grup.The Init metoda should perform any clean-up as necessary from previous uses of this wystąpienie, and enable it to re-start a new agregacja computation.

Accumulate

public void Accumulate ( input-type value[, input-type value, ...]);

One or more parameters representing the parameters of the function.input_type should be the managed SQL Server data type equivalent to the native SQL Server data type specified by input_sqltype in the CREATE AGGREGATE statement.Aby uzyskać więcej informacji zobaczMapowanie danych parametru CLR.

Dla typów zdefiniowanych przez użytkownika (UDTs) typ danych wejściowych jest taka sama, jak typ UDT.Procesor kwerend używa tej metoda do kumulują się wartości agregacja.Jest to wywoływany jeden raz dla każdej wartości w grupie, która jest sumowanej.Procesor kwerend zawsze wymaga to dopiero po telefonicznej Init Metoda dla danego wystąpienie klasy agregacja. Implementacja tej metoda należy aktualizować stan wystąpienie, aby odzwierciedlić akumulacji przekazywany wartość argumentu.

Merge

public void Merge( udagg_class value);

Metoda ta może służyć do scalenia inne wystąpienie tej klasy agregacja w bieżącym wystąpieniu.Procesor kwerend używa tej metoda, aby scalić wiele częściowe obliczenia agregacja.

Terminate

public return_type Terminate();

Ta metoda wykonuje obliczenie łącznej i zwraca wynik agregacja.The return_type should be a managed SQL Server data type that is the managed equivalent of return_sqltype specified in the CREATE AGGREGATE instrukcja. The return_type can also be a typ zdefiniowany przez użytkownika.

Tabela Valued parametry

Wycenione tabela parametrów (TVPs), typy zdefiniowane przez użytkownika tabela, które są przekazywane do procedury lub funkcja, zapewnia skuteczny sposób na przekazywanie wielu wierszy danych na serwerze.TVPs funkcjonalność podobnymi do tablic parametrów, ale oferują większą elastyczność i ściślejszej integracja z Transact-SQL. Zapewniają także możliwości, aby zapewnić lepszą wydajność.TVPs pomóc w ograniczeniu liczby round podróży do serwera.Zamiast wysyłać wiele żądań do serwera, na przykład z listą parametrów wartość skalarna, dane mogą być wysyłane do serwera jako TVP.Typ zdefiniowany przez użytkownika tabela nie mogą być przekazywane jako Wycenione tabela parametr, zwracane z zarządzanych procedura przechowywana lub funkcja w SQL Server proces. Ponadto TVPs nie można używać w ramach połączenia kontekstu.Jednakże, a TVP może być używany z Klient SQL w zarządzanych procedury przechowywanej lub funkcji w SQL Server proces, jeśli jest używany w połączeniu, nie ma połączenia kontekstu. Połączenie może być tym samym serwerze, na którym jest wykonywany zarządzanych procedury lub funkcja.Aby uzyskać więcej informacji na temat TVPs zobacz Tabela Valued parametry (aparat bazy danych).

Historia zmian

Microsoft Learning

Opis aktualizacji Accumulate Metoda; go teraz akceptuje więcej niż jeden parametr.