CLR-процедура аналогична любой другой хранимой процедуре и относится к функциям. После развертывания в базе данных они доступны для вашего сценария и ваших запросов. Допустим, вы создали метод C # в классе:
class Foo
{
public static void Bar()
{
// Awesome code goes here
}
}
Вы можете скомпилировать этот класс в сборочную DLL, скажем, MyClasses.DLL, а затем загрузить сборку в базу данных, используя CREATE ASSEMBLY MyClasses FROM
, объявив процедуру с помощью CREATE PROCEDURE Bar EXTERNAL MyClasses.Foo.Bar
. тогда ваш скрипт может просто вызвать процедуру с помощью EXEC Bar;
.
Visual Studio может упростить весь этот процесс, тип проекта SQL Server может развернуть сборку и объявить содержащиеся в ней процедуры / функции / типы данных.
После того, как вы начнете копать, появятся дополнительные подробности, например, правильное использование таких атрибутов, как SqlProcedureAttribute или SqlFunctionAttribute в вашем коде C # и т. Д. И т. Д.
Для начала я рекомендую некоторые статьи MSDN, такие как Использование интеграции CLR в SQL Server 2005 , Концепции программирования интеграции на общеязыковом языке (CLR) и ознакомьтесь с примерами в Сценарии использования и примеры для интеграции Common Language Runtime (CLR) .