Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók
Az SQL Server Language Extensions szolgáltatás a sp_execute_external_script rendszer által tárolt eljárást használja felületként a .NET-futtatókörnyezet meghívásához.
Ez az útmutató cikk az SQL Serveren futó C#-kód implementálási részleteit ismerteti.
C#-osztályok helye
C# kódot hívhat meg az SQL Serverben úgy, hogy lefordított .NET-kódtárakat (DLL-eket) és egyéb függőségeket tölt fel az adatbázisba a külső kódtár DDL-jének használatával. További információ: .NET DLL létrehozása C# projektből.
Alapelvek
Az alábbiakban néhány alapelvet ismertetünk a C# SQL Serveren való végrehajtásakor.
A lefordított egyéni .NET-osztályoknak DLL-fájlokban kell lenniük.
A hívott C# metódust meg kell adni a
scripttárolt eljárás paraméterében.Ha az osztály egy csomaghoz tartozik, meg kell adni.
packageNameparamsparamétert ad át egy C#-osztálynak. Az argumentumokat igénylő metódus meghívása nem támogatott. Ezért a paraméterek az egyetlen módja annak, hogy argumentumértékeket adjanak át a metódusnak.
Megjegyzés:
Ez a megjegyzés az SQL Server 2019 (15.x) és újabb verzióiban a C#-ra vonatkozó támogatott és nem támogatott műveleteket ismerteti. A tárolt eljárásban a bemeneti paraméterek támogatottak, míg a kimeneti paraméterek nem támogatottak.
C# kód meghívása
A sp_execute_external_script rendszer által tárolt eljárás a .NET-futtatókörnyezet meghívására használt felület. Az alábbi példa egy sp_execute_external_script .NET-bővítményt és paramétereket mutat be az elérési út, a szkript és az egyéni kód megadásához.
Megjegyzés:
Nem kell meghatároznia, hogy melyik metódust kell meghívnia. Alapértelmezés szerint a rendszer meghív egy metódust Execute . Ez azt jelenti, hogy követnie kell a Microsoft Bővíthetőségi SDK for C# for SQL Servert , és implementálnia kell egy metódust Execute a C# osztályban.
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;
Külső kódtár használata
Az SQL Server 2019 (15.x) és újabb verzióiban külső kódtárakat használhat a Windows C# nyelvéhez. Az osztályokat DLL-fájlba fordíthatja, és feltöltheti a DLL-t és más függőségeket az adatbázisba a CREATE EXTERNAL LIBRARY DDL használatával.
Példa egy DLL-fájl külső tárral való feltöltésére:
CREATE EXTERNAL LIBRARY [dotnetlibrary]
FROM (CONTENT = '<local path to .dll file>')
WITH (LANGUAGE = 'dotnet');
GO
Külső kódtár létrehozásakor az SQL Server automatikusan hozzáfér a C#-osztályokhoz, és nem kell külön engedélyeket beállítania az elérési úthoz.
Az alábbi kód egy példa arra, hogy egy külső kódtárként feltöltött csomagból MyPackagehívja meg az Execute osztályban MyClass a metódust:
EXECUTE sp_execute_external_script
@language = N'dotnet',
@script = N'MyPackage.MyClass',
@input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS ((column1 INT));
További információ: KÜLSŐ KÓDTÁR LÉTREHOZÁSA.