Bagikan melalui


Microsoft Extensibility SDK untuk C# untuk SQL Server

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru

Pelajari bagaimana Anda dapat menerapkan program C# untuk SQL Server menggunakan Microsoft Extensibility SDK untuk .NET. SDK adalah antarmuka untuk ekstensi bahasa .NET yang digunakan untuk bertukar data dengan SQL Server dan untuk menjalankan kode C# dari SQL Server.

Kode ini sumber terbuka dan dapat ditemukan di repositori GitHub Ekstensi Bahasa SQL Server.

Persyaratan implementasi

Antarmuka SDK mendefinisikan serangkaian persyaratan yang perlu dipenuhi agar SQL Server dapat berkomunikasi dengan runtime .NET. Untuk menggunakan SDK, Anda perlu mengikuti beberapa aturan implementasi di kelas utama Anda. SQL Server kemudian dapat menjalankan metode tertentu di C# dan bertukar data menggunakan ekstensi bahasa .NET.

Untuk contoh bagaimana Anda dapat menggunakan SDK, lihat Tutorial: Mencari string menggunakan ekspresi reguler (regex) di C#.

Kelas SDK

SDK terdiri dari beberapa kelas.

  • Kelas abstrak AbstractSqlServerExtensionExecutor menentukan antarmuka yang digunakan ekstensi .NET untuk bertukar data dengan SQL Server.

  • Beberapa kelas pembantu mengimplementasikan objek himpunan CSharpDataSet data.

Di bagian berikut, Anda menemukan deskripsi setiap kelas di SDK. Kode sumber kelas SDK tersedia di repositori GitHub Ekstensi Bahasa SQL Server.

Kelas: AbstractSqlServerExtensionExecutor

Kelas abstrak AbstractSqlServerExtensionExecutor berisi antarmuka yang digunakan untuk menjalankan kode C# oleh ekstensi bahasa .NET untuk SQL Server.

Kelas C# utama Anda perlu mewarisi dari kelas ini. Mewarisi dari kelas ini berarti bahwa ada metode tertentu di kelas yang perlu Anda terapkan di kelas Anda sendiri.

Untuk mewarisi dari kelas abstrak ini, Anda perluas dengan nama kelas abstrak dalam deklarasi kelas, di mana MyClass adalah nama kelas Anda:

public class MyClass : AbstractSqlServerExtensionExecutor {}

Minimal, kelas utama Anda perlu menerapkan metode .Execute(...)

Metode Execute

Metode Execute ini adalah metode yang dipanggil dari SQL Server melalui ekstensi bahasa .NET, untuk memanggil kode C# dari SQL Server. Ini adalah metode utama di mana Anda menyertakan operasi utama yang ingin Anda jalankan dari SQL Server.

Untuk meneruskan argumen metode ke C# dari SQL Server, gunakan @param parameter di sp_execute_external_script. Metode ini Execute mengambil argumennya seperti itu.

public abstract DataFrame Execute(DataFrame input, Dictionary<string, dynamic> sqlParams);

Metode Init

Metode Init ini dijalankan setelah konstruktor, dan sebelum Execute metode . Setiap operasi yang perlu dilakukan sebelumnya Execute dapat dilakukan dalam metode ini.

public virtual void Init(string sessionId, int taskId, int numTasks);

Kelas: CSharpExtension

CSharpExtension Kelas mengimplementasikan semua API ekstensi bahasa dan mengembalikan hasil ke host asli.

Kelas: CSharpDataSet

Kelas abstrak CSharpDataSet berisi antarmuka untuk menangani data input dan output yang digunakan oleh ekstensi .NET.