Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri
SQL Server Dil Uzantıları özelliği, .NET çalışma zamanını çağırmak için arabirim olarak sp_execute_external_script sistem saklı yordamını kullanır.
Bu nasıl yapılır makalesinde, SQL Server'da yürütülen C# kodu için uygulama ayrıntıları açıklanmaktadır.
C# sınıfları nereye yerleştirileceği
Dış kitaplık DDL'sini kullanarak derlenmiş .NET kitaplıklarını (DLL' ler) ve diğer bağımlılıkları veritabanına yükleyerek SQL Server'da C# kodunu çağırırsınız. Daha fazla bilgi için bkz. C# projesinden .NET DLL oluşturma.
Temel ilkeler
SQL Server'da C# yürütülürken bazı temel ilkeler aşağıdadır.
Derlenmiş özel .NET sınıfları DLL dosyalarında bulunmalıdır.
Çağırdığınız C# yöntemi saklı yordamdaki
scriptparametresinde sağlanmalıdır.Sınıf bir pakete aitse,
packageNamebelirtilmelidir.paramsbir C# sınıfına parametre geçirmek için kullanılır. Parametre gerektiren bir yöntemin çağrılması desteklenmez. Bu nedenle, bağımsız değişken değerlerini yönteminize geçirmenin tek yolu parametrelerdir.
Uyarı
Bu not, SQL Server 2019 (15.x) ve sonraki sürümlerde C# 'ye özgü desteklenen ve desteklenmeyen işlemleri yeniden ifade eder. Saklı yordamda giriş parametreleri desteklenirken çıkış parametreleri desteklenmez.
C# kodunu çağırma
sp_execute_external_script sistem saklı yordamı, .NET çalışma zamanını çağırmak için kullanılan arabirimdir. Aşağıdaki örnek, .NET uzantısını kullanan bir sp_execute_external_script ile yol, betik ve özel kodunuzu belirtmeye yönelik parametreleri gösterir.
Uyarı
Çağrılacak yöntemi tanımlamanız gerekmez. Varsayılan olarak, adlı Execute bir yöntem çağrılır. Bu, SQL Server için C# için Microsoft Genişletilebilirlik SDK'sını izlemeniz ve C# sınıfınızda bir Execute yöntem uygulamanız gerektiği anlamına gelir.
DECLARE @param1 AS INT;
SET @param1 = 3;
EXECUTE sp_execute_external_script
@language = N'dotnet',
@script = N'<PackageName>.<ClassName>',
@input_data_1 = N'<Input Query>',
@param1 = @param1;
Harici kitaplık kullan
SQL Server 2019 (15.x) ve sonraki sürümlerinde, Windows'da C# dili için dış kitaplıkları kullanabilirsiniz. Sınıflarınızı bir DLL dosyasında derleyebilir ve DDL kullanarak CREATE EXTERNAL LIBRARY DLL'yi ve diğer bağımlılıkları veritabanına yükleyebilirsiniz.
Harici kitaplık içeren bir DLL dosyasının yüklenmesine ilişkin örnek:
CREATE EXTERNAL LIBRARY [dotnetlibrary]
FROM (CONTENT = '<local path to .dll file>')
WITH (LANGUAGE = 'dotnet');
GO
Bir dış kitaplık oluşturduğunda, SQL Server otomatik olarak C# sınıflarına erişebilir ve yol için özel izinler ayarlamanız gerekmez.
Aşağıdaki kod, harici kitaplık olarak yüklenen MyPackage paketindeki MyClass sınıfında yer alan Execute yönteminin çağrılmasına ilişkin bir örnektir:
EXECUTE sp_execute_external_script
@language = N'dotnet',
@script = N'MyPackage.MyClass',
@input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS ((column1 INT));
Daha fazla bilgi için bkz. CREATE EXTERNAL LIBRARY.