Code dotnet injection dans le sql dans management studio
Bonjour,
J'ai developpé une solution qui permet d'injecter du code dotnet directement dans les requettes sql. ce qui permet d'utiliser tous le framworks dotnet à la volé dans le sql de management studio.
un exemple de ma fonction qui s'execute aujourd'hui :
Code:
1 2 3 4 5 6 7 8
|
Select dbo.Execute1('
var p1 = decimal.Parse(@p1.ToString());
return 15 + Math.Abs(p1);
',5) |
Execute1 vas executer le code dotnet et retourner le resultat, bien sur tout peut etre possible (Travail sur les chaines, sur les numeric, créé des class et les instancier, ...) et il es possible de le mettre dans un select (la fonction s'executera sur chaque ligne).
Afin de pouvoir deployer facilement cela sur mes serveurs sql il me faudrait la possibilité depuis un dll dotnet instancier dans sql server, de retrouver un dossier accessible en lecture/ecriture par le processus sql server (bien sur lors de l'enregistrement de ma dll j'ai mis unsafe) et ou je peu executer un exe en ligne de commande.
code d'integration de ma dll.
Code:
1 2 3 4 5 6 7 8 9
|
CREATE ASSEMBLY SqlFX from 'D:\SqlServerFX.dll' WITH PERMISSION_SET = UNSAFE /*SAFE | EXTERNAL_ACCESS | UNSAFE */
Go
CREATE FUNCTION [dbo].Execute1(@Algo sql_variant, @p1 sql_variant)
RETURNS sql_variant WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SqlFX].[SqlServerFX.FX].Execute1
go |
Merci à tous.