2008-09-02 4 views
3

Недавно я обнаружил, что можно размещать сборки .net на серверах SQL Server> = 2005, чтобы функции .net могли вызываться в операторах T/SQL.Использование сборок .net в SQL Server 2005

Я задавался вопросом, что люди используют для этого и как они работают?

ответ

0

Я нашел это очень полезным.

Я использовал эту возможность для расширения функций, связанных с XML MSSQL2005.

Если я правильно помню, вы даже можете представить свои собственные типы данных.

0

Это обычно используется, если вам необходимо каким-то образом взаимодействовать с операционной системой, например, разместить сообщение в MSMQ или записать в файл. Это также полезно, если у вас есть сложные математические или финансовые расчеты, которые уже реализованы в .NET, и вы не хотите переписывать их в T-SQL.

3

Первое использование общего назначения для CLR в SQL 2005, которое я создал, было сборкой SQL 2005, которая имеет множество функций, которые выполняют строковые операции и сопоставления шаблонов с использованием регулярных выражений. Собственные строковые функции в SQL 2005 могут быть дополнены, чтобы вы могли проверять общие форматы, такие как номера телефонов или номера кредитных карт, или выполнять специальные регулярные выражения в хранимых процедурах.

Для детерминированных пользовательских функций я нашел поддержку SQL CLR очень эффективной.

+1

Вместо того, чтобы писать свою собственную библиотеку, вы также можете использовать библиотеку SQL # (как бесплатную, так и платную версию) http://www.sqlsharp.com/. Он предоставляет множество функций прямо из коробки. Я счастливый пользователь бесплатной версии :) – 2009-07-17 19:58:28

0

Интеграция CLR с SQL 2005 особенно полезна для пользовательских функций/хранимых процедур, написанных на .NET, а также для пользовательских типов данных. например Вы можете написать тяжелый тип данных, который позволяет SQL определять объекты и ссылочные свойства. Например, вы могли бы написать некоторые варианты супер-пупер datetime.

0

Оппозиционный, я согласен с вами. Ассембли прекрасны для всех тех вещей, которые не достижимы или едва достижимы в T-SQL (через хакерские методы).

Простота использования - это ключ. Имейте в виду следующие последствия ...

  1. Использование сборки приводит к проблемам конфигурации доверия/безопасности/разрешения.

Сборка должна быть определена в базе данных. Если сборка не подписана, базе данных будет разрешен код UNTRUSTED. Эта база данных сбрасывается при отсоединении/повторной загрузке базы данных.

  1. Использование сборки влияет на конфигурацию SQL Server (а не только на базу данных).

Чтобы запустить сборку, вы должны сначала обеспечить, чтобы облегченный пул SQL Server был отключен.

  1. Для функций сборок не забывайте сохранять консервативность при манипуляциях с данными; особенно на занятых столах.

Если возможно, избегайте использования метода сборки, который пытается повлиять на слишком много строк за раз. Позаботьтесь о тех, которые используются в триггерах таблицы. Некоторые из них резко ухудшат производительность.

Смежные вопросы