Реализация сборок
Область применения: SQL Server
Эта тема предоставляет сведения о следующих областях, чтобы помочь в реализации и работе со сборками в базе данных.
Создание сборок.
Изменение сборок.
Удаление, отключение и включение сборок.
Управление версиями сборок.
Создание сборок.
Сборки создаются в SQL Server с помощью инструкции Transact-SQL CREATE ASSEMBLY или в SQL Server Management Studio с помощью редактора сборок. Кроме того, развертывание проекта SQL Server в Microsoft Visual Studio регистрирует сборку в базе данных, которая была указана для проекта. Дополнительные сведения см. в статье Deploying CLR Database Objects.
Создание сборки с помощью Transact-SQL
Создание сборки с помощью SQL Server Management Studio
Изменение сборок
Сборки изменяются в SQL Server с помощью инструкции Transact-SQL ALTER ASSEMBLY или в SQL Server Management Studio с помощью редактора сборок. Можно изменить сборку, когда надо сделать следующее.
Изменить реализацию сборки путем передачи более новой версии бинарных файлов сборки. Дополнительные сведения см. в разделе "Управление версиями сборок " далее в этом разделе.
Изменить набор разрешений сборки. Дополнительные сведения см. в разделе Разработка сборок.
Изменить видимость сборки. Видимые сборки доступны для ссылки на SQL Server. Невидимые сборки недоступны, даже если они были переданы в базу данных. По умолчанию сборки, отправленные в экземпляр SQL Server, видны.
Добавить или удалить отладку или исходный файл, связанный со сборкой.
Изменение сборки с помощью Transact-SQL
Изменение сборки с помощью SQL Server Management Studio
Удаление, отключение и включение сборок
Сборки удаляются с помощью инструкции Transact-SQL DROP ASSEMBLY или SQL Server Management Studio.
Удаление сборки с помощью Transact-SQL
Удаление сборки с помощью SQL Server Management Studio
По умолчанию все сборки, созданные в SQL Server, отключены от выполнения. Вы можете использовать параметр clr с включенным параметром sp_configure системной хранимой процедуры, чтобы отключить или включить выполнение всех сборок, отправленных в SQL Server. Отключение выполнения сборки не допускает выполнения функций среды CLR, хранимых процедур, триггеров, статистических выражений и определяемых пользователем типов, а также останавливает все эти объекты, выполняющиеся в настоящее время. Отключение выполнения сборки не отключает способность создавать, изменять или удалять сборки. Дополнительные сведения см. в разделе "Параметр конфигурации сервера с поддержкой clr".
Отключение и включение выполнения сборки
Управление версиями сборок
При отправке сборки в экземпляр SQL Server сборка хранится и управляется в каталогах систем базы данных. Любые изменения, внесенные в определение сборки в Microsoft платформа .NET Framework, должны распространяться на сборку, хранящуюся в каталоге базы данных.
Если нужно изменить сборку, следует выполнить инструкцию ALTER ASSEMBLY, чтобы обновить сборку в базе данных. Это приведет к обновлению сборки до последней копии модулей платформа .NET Framework, содержащих ее реализацию.
Предложение WITH UNCHECKED DATA инструкции ALTER ASSEMBLY указывает SQL Server обновлять даже те сборки, на которые сохраняются данные в базе данных. В частности, надо указать WITH UNCHECKED DATA, если присутствует любое из следующего.
Сохраненные вычисляемые столбцы, которые ссылаются на методы в сборке напрямую или косвенно с помощью функций или методов Transact-SQL.
зависящие от сборки столбцы определяемого пользователем типа данных CLR и типа, реализующего сериализацию формата UserDefined (не собственного);
Внимание
Если не указан параметр WITH UNCHECKED DATA, то SQL Server старается избежать выполнения ALTER ASSEMBLY, если сборка новой версии изменяет существующие данные в таблицах, индексах и т. д. Однако SQL Server не гарантирует, что вычисляемые столбцы, индексы, индексированные представления или выражения будут согласованы с базовыми подпрограммами и типами при обновлении сборки СРЕДЫ CLR. Следует проявлять осторожность при исполнении ALTER ASSEMBLY, чтобы избежать несоответствия результата выражения и его значения, хранящегося в сборке.
Только члены db_owner и db_ddlowner предопределенной роли базы данных могут выполнять ALTER ASSEMBLY с помощью предложения WITH UNCHECKED DATA.
SQL Server отправляет сообщение в журнал событий приложения Windows, что сборка была изменена с незаверченными данными в таблицах. Затем SQL Server помечает все таблицы, содержащие данные, зависящие от сборки, как имеющие снятые данные. Столбец has_unchecked_assembly_data представления каталога sys.tables содержит значение 1 для таблиц, содержащих незаверченные данные, и 0 для таблиц без проверки данных.
Чтобы устранить целостность неконтролируемых данных, запустите DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS для каждой таблицы, в которую были сняты данные. Если инструкция DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS завершается ошибкой, необходимо либо удалить недопустимые строки таблицы, либо изменить код сборки для устранения проблем, а затем выдать дополнительные инструкции ALTER ASSEMBLY.
Инструкция ALTER ASSEMBLY изменяет версию сборки. Язык и региональные параметры и маркер открытого ключа сборки остаются неизменными. SQL Server не позволяет регистрировать разные версии сборки с одинаковым именем, языком и языком и открытым ключом.
Взаимодействие с политикой уровня компьютера для привязки версии
Если ссылки на сборки, хранящиеся в SQL Server, перенаправляются в определенные версии с помощью политики издателя или политики администратора на уровне компьютера, необходимо выполнить одно из следующих действий:
Убедиться, что новая версия, к которой происходит переадресация, находится в базе данных.
Изменить любые инструкции по отношению к файлам внешней политики компьютера или политики издателя, чтобы убедиться, что они ссылаются на определенную версию, которая находится в базе данных.
В противном случае попытка загрузить новую версию сборки в экземпляр SQL Server завершится ошибкой.
Обновление версии сборки
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по