Bagikan melalui


CLR User-Defined Agregat - Persyaratan

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. Ketika Anda telah memenuhi persyaratan ini, Anda akan dapat memanfaatkan sepenuhnya agregat yang ditentukan pengguna di Microsoft SQL Server. Bagian berikut dari topik ini memberikan detail tambahan tentang cara membuat dan bekerja dengan agregat yang ditentukan pengguna. Misalnya, lihat Memanggil CLR User-Defined Fungsi Agregat.

SqlUserDefinedAggregate

Untuk informasi selengkapnya, lihat SqlUserDefinedAggregateAttribute.

Metode Agregasi

Kelas yang terdaftar sebagai agregat yang ditentukan pengguna harus mendukung metode instans berikut. Ini adalah metode yang digunakan prosesor kueri untuk menghitung agregasi:

Metode Sintaks Deskripsi
Init public void Init(); Prosesor kueri menggunakan metode ini untuk menginisialisasi komputasi agregasi. Metode ini dipanggil sekali untuk setiap grup yang digabungkan oleh prosesor kueri. Prosesor kueri dapat memilih untuk menggunakan kembali instans yang sama dari kelas agregat untuk menghitung agregat beberapa grup. Metode Init harus melakukan pembersihan seperlunya dari penggunaan instans ini sebelumnya, dan memungkinkannya untuk memulai kembali komputasi agregat baru.
Mengakumulasikan 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 yang diberikan dari kelas agregat. Implementasi metode ini harus memperbarui status instans untuk mencerminkan akumulasi nilai argumen yang diteruskan.
Gabung 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 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.

Lihat juga

Jenis yang Ditentukan Pengguna CLR
Memanggil Fungsi Agregat User-Defined CLR