Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом разделе содержатся сведения о следующих областях, которые помогут вам реализовать сборки в базе данных и работать с ней.
Создание сборок.
Изменение сборок.
Удаление, отключение и включение сборок.
Управление версиями сборок.
Создание сборок
Сборки создаются в SQL Server с помощью инструкции CREATE ASSEMBLY Transact-SQL или в SQL Server Management Studio с помощью редактора с помощью редактора сборок. Кроме того, развертывание проекта SQL Server в Microsoft Visual Studio регистрирует сборку в базе данных, которая была указана для проекта. Дополнительные сведения см. в разделе "Развертывание объектов базы данных CLR".
Создание сборки с помощью Transact-SQL
Создание сборки с помощью SQL Server Management Studio
Изменение сборок
Сборки изменяются в SQL Server с помощью инструкции ALTER ASSEMBLY Transact-SQL или в 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 (non-Native).
Осторожность
Если ПАРАМЕТР 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 CHECKTABLE для каждой таблицы, которая содержит снятые данные. Если ошибка DBCC CHECKTABLE завершается ошибкой, необходимо удалить строки таблицы, недопустимые или изменить код сборки для устранения проблем, а затем выдать дополнительные инструкции ALTER ASSEMBLY.
ALTER ASSEMBLY изменяет версию сборки. Язык и региональные параметры и маркер открытого ключа сборки остаются неизменными. SQL Server не позволяет регистрировать разные версии сборки с одинаковым именем, языком и языком и открытым ключом.
Взаимодействие с политикой на уровне компьютера для привязки версий
Если ссылки на сборки, хранящиеся в SQL Server, перенаправляются в определенные версии с помощью политики издателя или политики администратора на уровне компьютера, необходимо выполнить одно из следующих действий:
Убедиться, что новая версия, к которой происходит переадресация, находится в базе данных.
Изменить любые инструкции по отношению к файлам внешней политики компьютера или политики издателя, чтобы убедиться, что они ссылаются на определенную версию, которая находится в базе данных.
В противном случае попытка загрузить новую версию сборки в экземпляр SQL Server завершится ошибкой.
Обновление версии сборки