Поделиться через


Изменение сборки

Область применения:SQL Server

Сборки, зарегистрированные в SQL Server, можно обновить из более последней версии с помощью инструкции ALTER ASSEMBLY. Чтобы обновить сборку, используйте инструкцию ALTER ASSEMBLY со следующим синтаксисом:

ALTER ASSEMBLY SQLCLRTest
    FROM 'C:\MyDBApp\SQLCLRTest.dll';

ALTER ASSEMBLY не нарушает текущие запущенные процессы, использующие сборку; Процессы продолжают выполняться с неуправляемой сборкой. ALTER ASSEMBLY нельзя использовать для изменения подписей функций среды CLR, агрегатных функций, хранимых процедур и триггеров. Вы можете добавить в сборку новые открытые методы, частные методы можно изменить любым образом, и общедоступные методы можно изменить, пока подписи или атрибуты не изменяются. Поля, содержащиеся в собственном сериализованном пользовательском типе, включая элементы данных или базовые классы, нельзя изменять с помощью ALTER ASSEMBLY. Любые другие изменения не поддерживаются. Дополнительные сведения см. в разделе ALTER ASSEMBLY.

Изменение набора разрешений сборки

Набор разрешений сборки также можно изменить с помощью инструкции ALTER ASSEMBLY. Следующая инструкция изменяет набор разрешений сборки SQLCLRTest на EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Если набор разрешений сборки изменяется с SAFE на EXTERNAL_ACCESS или UNSAFE, необходимо сначала создать асимметричный ключ и соответствующее имя входа с разрешением EXTERNAL ACCESS ASSEMBLY или разрешением UNSAFE ASSEMBLY для сборки. Дополнительные сведения см. в статье Создание сборки.

Добавление исходного кода сборки

Предложение ADD FILE в синтаксисе ALTER ASSEMBLY отсутствует в CREATE ASSEMBLY. Оно обеспечивает возможность добавления исходного кода или любых других файлов, связанных со сборкой. Файлы копируются из исходных расположений и сохраняются в системных таблицах базы данных. Таким образом, у вас всегда есть исходный код или другие файлы, если вам нужно повторно создать или документировать текущую версию определяемого пользователем типа (UDT).

Следующая инструкция добавляет исходный код класса Point.cs для Point определяемого пользователем кода. Он копирует текст, содержащийся в файле Point.cs, и сохраняет его в базе данных под именем PointSource.

ALTER ASSEMBLY Point
ADD FILE FROM 'C:\Projects\Point\Point.cs' AS PointSource;