Как вызвать код C# из Sql Server

1. делаем библиотеку классов и переносим DLL на сервере
namespace CLRFalconLib
{

public class BaseFunctionClass
{
#region “Default Constructor”
public BaseFunctionClass()
{

}
#endregion

#region “Welcome Function”
///

/// This function will be called from the SQL Stored Procedure.
///

///Name /// Welcome Message
[SqlProcedure] public static int GetMessage2(SqlString strName, out SqlString strMessge)
{
strMessge = “Welcome your code is getting executed under CLR !”;
return 5;
}

[SqlProcedure] public static void GetMessage(SqlString strName, out SqlString strMessge)
{
strMessge = “Welcome your code is getting executed under CLR !”;

}
#endregion

}
}

2. Делаем возможным вызов CLR из sql (делаем на сервере под админом)
sp_configure ‘clr enable’, 1
GO
RECONFIGURE
GO

3. Создание сборки в sql (и ее обновление когда необходимо перезалить dll)
CREATE ASSEMBLY CLRFalconLib2
AUTHORIZATION dbo
FROM ‘C:\Temp\CLRFalconLib.dll’
WITH PERMISSION_SET = UNSAFE
GO

ALTER ASSEMBLY CLRFalconLib
FROM ‘C:\Temp\CLRFalconLib.dll’

4. Создаем процедуру которую будем потом вызывать
CREATE PROCEDURE tst_UseHelloDotNetAssembly2
@name nvarchar(200),
@msg nvarchar(MAX)OUTPUT
AS EXTERNAL NAME CLRFalconLib.[CLRFalconLib.BaseFunctionClass].GetMessage2
GO

5. Вызов процедуры
DECLARE @id int , @msg varchar(MAX)=”
EXEC @id = tst_UseHelloDotNetAssembly2 ‘Kittu And Tannu’,@msg output
PRINT @msg
print @id

Более подробно:

https://www.codeproject.com/Articles/19954/Execute-NET-Code-under-SQL-Server
http://techxposer.com/2017/08/21/calling-rest-api-service-from-sql-server-using-c-sql-clr/
https://blog.sqlauthority.com/2008/10/19/sql-server-introduction-to-clr-simple-example-of-clr-stored-procedure/

Руслан Раянов

Share
Published by
Руслан Раянов
Tags: SQL Server

Recent Posts

Как планировать проект. Управление изменениями IT-проекта

Поговорим о планировании возможностей будущего продукта, неверных шагах, заблуждениях, которые вы можете упустить при проработке…

19 часов ago

Что учесть при обеспечении информационной безопасности сайта

https://falconspace.ru/blog/kak-zashchitit-sayt--obespechenie-informacionnoy-bezopasnosti-sayta - Как защитить сайт? Обеспечение информационной безопасности сайта

2 дня ago

Cтандартизация задач сотрудника через личный кабинет #личныйкабинет

https://falconspace.ru/blog/sozdanie-arm-dlya-sotrudnikov--razrabotka-lichnogo-kabineta-dlya-sotrudnikov - Как сделать АРМ сотрудника. Личный кабинет сотрудника на сайте

4 дня ago

Контроль доступа к ресурсам информационной системы

https://falconspace.ru/blog/sozdanie-arm-dlya-sotrudnikov--razrabotka-lichnogo-kabineta-dlya-sotrudnikov - Как сделать АРМ сотрудника. Личный кабинет сотрудника на сайте

5 дней ago

Что дает личный кабинет для руководства компании?

https://falconspace.ru/blog/sozdanie-arm-dlya-sotrudnikov--razrabotka-lichnogo-kabineta-dlya-sotrudnikov - Как сделать АРМ сотрудника. Личный кабинет сотрудника на сайте

6 дней ago

Почему управление дистанционно вызывает опасение? В сети куча мошенников

https://falconspace.ru/blog/pro-udalennoe-vzaimodeystvie-zakazchika-i-podryadchika - Удаленное взаимодействие между заказчиками и разработчиками

1 неделя ago