Размещение CLR в SQL Server дает разработчикам баз данных более гибкие возможности в способах выполнения задач. Как уже упоминалось, SQL отлично подходит для операций и модификаций наборов данных . Любой, кто проделал обширную разработку больших приложений со сложными правилами для бизнеса / домена, скорее всего, скажет вам - попытка применить некоторые из этих правил с использованием чистого SQL (иногда в виде одного макропросмотра) может стать по-настоящему кошмарной.
Есть только определенные задачи, которые лучше решать процедурно или не по назначению. Имея возможность использования кода .NET для разрушения последовательности логики, операции запроса могут стать проще для чтения и отладки. Используя хранимые процедуры CLR, я могу сказать, что с помощью отладчика вы сможете легко понять, что происходит на уровне базы данных.
Только один пример, мы часто используем хранимые здесь процедуры CLR в качестве «шлюза» для динамических поисковых запросов. Скажите поисковый запрос, который может иметь до 30 различных параметров поиска. Пользователи, очевидно, не используют все 30 из них, поэтому переданная структура данных будет иметь 30 параметров, но в основном это DBNULL. На клиентской стороне нет опции для генерации динамического оператора по очевидным причинам безопасности. Результирующий динамический оператор генерируется внутри, не опасаясь внешних «дополнений».