Обновление сборки SQLCLR в базе данных

За время работы базы данных используемые сборки SQLCLR могут быть неоднократно модифицированы. Это может связано как с расширением функционала, так и с устранением возможных недоработок в предыдущих версиях.

В любом случае, после перекомпиляции сборки, необходимо обновить её в базе данных, чтобы заменить имеющуюся в ней версию на актуальную.

Для изменения сборок хранящихся в базе данных в Transact-SQL предусмотрена специальная инструкция «ALTER ASSEMBLY».

В случае простого обновления используется её простейший вариант:

В качестве примера. Для того чтобы обновить в базе данных сборку рассмотренную в статье о разработке триггеров SQLCLR была использована команда:

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

Возможно, некоторые зададут вопрос: может быть, проще удалить сборку и загрузить её заново?

Нет, не проще.

Из удаляемой сборки в базу данных уже наверняка импортированы хотя бы некоторые объекты. Пока они все не будут удалены из базы данных, Microsoft SQL Server не позволит удалить сборку.

Если речь идёт об одном-двух объектах, то удаление ещё можно выполнить относительно быстро, но когда их несколько десятков (или больше), то даже составление или правка скрипта для их удаления, не говоря уже об удалении вручную, потребует большого количества времени.

Не стоит забывать и о том, что после повторной загрузки сборки, все удалённые объекты придётся импортировать заново.

Обновление сборки таким способом это просто трата рабочего времени и двойная работа, которые ничем не оправданы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *