Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Jenis dalam rakitan runtime bahasa umum (CLR) dapat didaftarkan sebagai fungsi agregat yang ditentukan pengguna, selama mengimplementasikan kontrak agregasi yang diperlukan. Kontrak ini terdiri dari atribut SqlUserDefinedAggregate dan metode kontrak agregasi. Kontrak agregasi mencakup mekanisme untuk menyimpan status perantara agregasi, dan mekanisme untuk mengakumulasi nilai baru, yang terdiri dari empat metode: Init, Accumulate, Merge, dan Terminate. Setelah memenuhi persyaratan ini, Anda dapat memanfaatkan sepenuhnya agregat yang ditentukan pengguna di SQL Server. Artikel ini menyediakan informasi selengkapnya tentang cara membuat dan bekerja dengan agregat yang ditentukan pengguna. Misalnya, lihat Memanggil fungsi agregat yang ditentukan pengguna CLR.
Untuk informasi selengkapnya, lihat SqlUserDefinedAggregateAttribute.
Metode agregasi
Kelas yang terdaftar sebagai agregat yang ditentukan pengguna harus mendukung metode instans berikut. Prosesor kueri menggunakan metode berikut untuk menghitung agregasi.
Metode init
Sintaksis:
public void Init();
Prosesor kueri menggunakan metode ini untuk menginisialisasi komputasi agregasi. Metode ini dipanggil sekali untuk setiap grup yang diagregasi prosesor kueri. Prosesor kueri mungkin memilih untuk menggunakan kembali instans kelas agregat yang sama untuk menghitung agregat beberapa grup. Metode Init harus melakukan pembersihan seperlunya dari penggunaan instans ini sebelumnya, dan memungkinkannya untuk memulai ulang komputasi agregat baru.
Metode akumulasi
Sintaksis:
public void Accumulate(input-type value[, input-type value, ...]);
Satu atau beberapa parameter yang mewakili parameter fungsi.
input_type harus berupa jenis data SQL Server terkelola yang setara dengan jenis data SQL Server asli yang ditentukan oleh input_sqltype dalam pernyataan CREATE AGGREGATE. Untuk informasi selengkapnya, lihat Memetakan data parameter CLR.
Untuk jenis yang ditentukan pengguna (UDT), jenis input sama dengan jenis UDT. Prosesor kueri menggunakan metode ini untuk mengakumulasi nilai agregat. Ini dipanggil sekali untuk setiap nilai dalam grup yang sedang diagregasi. Prosesor kueri selalu memanggil ini hanya setelah memanggil metode Init pada instans kelas agregat yang diberikan. Implementasi metode ini harus memperbarui status instans untuk mencerminkan akumulasi nilai argumen yang diteruskan.
Metode penggabungan
Sintaksis:
public void Merge(udagg_class value);
Metode ini dapat digunakan untuk menggabungkan instans lain dari kelas agregat ini dengan instans saat ini. Prosesor kueri menggunakan metode ini untuk menggabungkan beberapa komputasi parsial agregasi.
Hentikan metode
Sintaksis:
public return_type Terminate();
Metode ini menyelesaikan komputasi agregat dan mengembalikan hasil agregasi.
return_type harus merupakan jenis data SQL Server terkelola yang setara dengan return_sqltype yang ditentukan dalam pernyataan CREATE AGGREGATE.
return_type juga dapat menjadi jenis yang ditentukan pengguna.