Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2019 (15.x) a novější verze
Funkce SQL Server Language Extensions používá sp_execute_external_script systém uloženou proceduru jako rozhraní pro volání modulu runtime .NET.
Tento článek s postupy vysvětluje podrobnosti implementace kódu jazyka C#, který se spouští na SQL Serveru.
Kde umístit třídy jazyka C#
Kód jazyka C# v SQL Serveru můžete volat tak, že do databáze nahrajete zkompilované knihovny .NET a další závislosti pomocí knihovny DDL externí knihovny . Další informace naleznete v tématu Vytvoření knihovny DLL .NET z projektu jazyka C#.
Základní principy
Tady jsou některé základní principy při spouštění jazyka C# na SQL Serveru.
Kompilované vlastní třídy .NET musí existovat v souborech DLL.
V parametru
scriptuložené procedury musí být zadanou metodou jazyka C#, kterou voláte.Pokud třída patří do balíčku,
packageNamemusí být k dispozici.paramsslouží k předávání parametrů do třídy jazyka C#. Volání metody, která vyžaduje argumenty, není podporováno. Parametry jsou proto jediným způsobem, jak předat hodnoty argumentů metodě.
Poznámka:
Tato poznámka restuje podporované a nepodporované operace specifické pro jazyk C# v SQL Serveru 2019 (15.x) a novějších verzích. U uložené procedury se podporují vstupní parametry, zatímco výstupní parametry se nepodporují.
Volání kódu jazyka C#
Uložená procedura systému sp_execute_external_script je rozhraní, které slouží k volání modulu runtime .NET. Následující příklad ukazuje sp_execute_external_script použití rozšíření .NET a parametry pro zadání cesty, skriptu a vlastního kódu.
Poznámka:
Nemusíte definovat, kterou metodu se má volat. Ve výchozím nastavení se volá metoda Execute . To znamená, že potřebujete postupovat podle sady Microsoft Extensibility SDK pro jazyk C# pro SQL Server a implementovat metodu Execute ve třídě jazyka C#.
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;
Použití externí knihovny
V SQL Serveru 2019 (15.x) a novějších verzích můžete použít externí knihovny pro jazyk C# ve Windows. Třídy můžete zkompilovat do souboru DLL a nahrát knihovnu DLL a další závislosti do databáze pomocí CREATE EXTERNAL LIBRARY DDL.
Příklad nahrání souboru DLL s externí knihovnou:
CREATE EXTERNAL LIBRARY [dotnetlibrary]
FROM (CONTENT = '<local path to .dll file>')
WITH (LANGUAGE = 'dotnet');
GO
Když vytvoří externí knihovnu, SQL Server má automaticky přístup ke třídám jazyka C# a nemusíte pro cestu nastavovat žádná zvláštní oprávnění.
Následující kód je příkladem volání Execute metody ve třídě MyClass z balíčku MyPackage, nahrané jako externí knihovna:
EXECUTE sp_execute_external_script
@language = N'dotnet',
@script = N'MyPackage.MyClass',
@input_data_1 = N'SELECT * FROM MYTABLE'
WITH RESULT SETS ((column1 INT));
Další informace naleznete v tématu VYTVOŘENÍ EXTERNÍ KNIHOVNY.