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,
packageNamesağlanmalıdır.paramsbir C# sınıfına parametre geçirmek için kullanılır. Bağımsız değişken 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 örnekte .NET uzantısının kullanıldığı ve sp_execute_external_script yol, betik ve özel kodunuzu belirtmek için kullanılan parametreler gösterilmektedir.
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;
Dış kitaplığı kullanma
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 CREATE EXTERNAL LIBRARY DDL kullanarak DLL'yi ve diğer bağımlılıkları veritabanına yükleyebilirsiniz.
Dış kitaplık içeren bir DLL dosyasını karşıya yükleme örneği:
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, sınıfında yöntemini MyClass dış kitaplık olarak karşıya yüklenen bir paketten MyPackageçağırma Execute örneğidir:
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.