Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
A közös nyelvi futtatókörnyezet (CLR) szerelvényének típusa regisztrálható felhasználó által definiált összesítő függvényként, feltéve, hogy megvalósítja a szükséges összesítési szerződést. Ez a szerződés a SqlUserDefinedAggregate attribútumból és az összesítési szerződés módszereiből áll. Az aggregációs szerződés tartalmazza az aggregáció köztes állapotának mentésére szolgáló mechanizmust , valamint az új értékek felhalmozásának mechanizmusát , amely négy módszerből áll : Init, Accumulate, Mergeés Terminate. Miután megfelel ezeknek a követelményeknek, teljes mértékben kihasználhatja a felhasználó által definiált összesítéseket az SQL Serverben. Ez a cikk további információt nyújt a felhasználó által definiált összesítések létrehozásáról és használatáról. Példa: CLR felhasználó által definiált összesítő függvények meghívása.
További információ: SqlUserDefinedAggregateAttribute.
Összesítési módszerek
A felhasználó által definiált összesítésként regisztrált osztálynak támogatnia kell a következő példánymetelyeket. A lekérdezésfeldolgozó az alábbi módszerekkel számítja ki az összesítést.
- Init
- halmozódása
- egyesítési
- Leállítási
Init metódus
Szintaxis:
public void Init();
A lekérdezésfeldolgozó ezzel a módszerrel inicializálja az aggregáció számítását. Ezt a metódust a program minden olyan csoport esetében egyszer meghívja, amelyet a lekérdezésfeldolgozó összesítve használ. A lekérdezésfeldolgozó dönthet úgy, hogy az összesítő osztály ugyanazon példányát használja fel több csoport összesítésének kiszámításához. A Init metódusnak szükség szerint el kell végeznie a törlést a példány korábbi használatából, és lehetővé kell tennie, hogy újrainduljon egy új összesített számítás.
Halmozási módszer
Szintaxis:
public void Accumulate(input-type value[, input-type value, ...]);
Egy vagy több paraméter, amely a függvény paramétereit jelöli.
input_type az CREATE AGGREGATE utasításban input_sqltype által megadott natív SQL Server-adattípussal egyenértékű felügyelt SQL Server-adattípusnak kell lennie. További információ: CLR-paraméteradatok leképezése.
A felhasználó által definiált típusok (UDT-k) esetében a bemeneti típus megegyezik az UDT-típussal. A lekérdezésfeldolgozó ezzel a módszerrel gyűjti össze az összesített értékeket. Ez az összesítés alatt álló csoport minden egyes értékéhez egyszer lesz meghívva. Ezt a lekérdezésfeldolgozó mindig csak akkor hívja meg, ha meghívja a Init metódust az összesített osztály adott példányán. A metódus végrehajtásának frissítenie kell a példány állapotát, hogy tükrözze az átadott argumentumérték halmozódását.
Egyesítési módszer
Szintaxis:
public void Merge(udagg_class value);
Ezzel a módszerrel egyesíthető az összesítő osztály egy másik példánya az aktuális példánysal. A lekérdezésfeldolgozó ezzel a módszerrel egyesít egy összesítés több részleges számítását.
Leállítási módszer
Szintaxis:
public return_type Terminate();
Ez a metódus befejezi az összesített számítást, és visszaadja az összesítés eredményét. A return_type felügyelt SQL Server-adattípusnak kell lennie, amely a CREATE AGGREGATE utasításban megadott return_sqltype felügyelt megfelelője. A return_type felhasználó által definiált típus is lehet.