Поддерживаемые библиотеки платформы .NET Framework

Если среда CLR размещается в SQL Server, то появляется возможность разрабатывать на управляемом коде хранимые процедуры, триггеры, определяемые пользователем функции, определяемые пользователем типы и определяемые пользователем статистические функции. Функциональность, реализованная в библиотеках классов платформы .NET Framework, предоставляет доступ к предварительно построенным классам для операций со строками, сложных математических операций, доступа к файлам, шифрования и т. д. Доступ к этим классам легко получить из любой управляемой хранимой процедуры, определяемого пользователем типа, триггера, определяемой пользователем функции или определяемой пользователем статистической функции.

ПримечаниеПримечание

При обслуживании или обновлении неподдерживаемых сборок в глобальном кэше сборок приложение SQL Server может прекратить работу. Это происходит вследствие того, что обслуживание или обновление библиотек в глобальном кэше сборок не обновляет сборки внутри SQL Server. Если сборка существует и в базе данных SQL Server, и в глобальном кэше сборок, то обе копии сборки должны полностью совпадать. Если они не совпадают, то при использовании сборки с интеграцией со средой SQL Server CLR возникает ошибка. При обслуживании или обновлении любых сборок в глобальном кэше сборок, которые также зарегистрированы в базе данных, в том числе неподдерживаемых сборок платформы .NET Framework, необходимо обеспечить обслуживание или обновление копии сборки в базах данных SQL Server с помощью инструкции ALTER ASSEMBLY. Дополнительные сведения см. в статье 949080 базы знаний.

Поддерживаемые библиотеки

Начиная с SQL Server 2005, SQL Server располагает списком поддерживаемых библиотек платформы .NET Framework, проверенных на соответствие стандартам надежности и безопасности при взаимодействии с SQL Server. Поддерживаемые библиотеки не требуется явно регистрировать на сервере, прежде чем они могут быть использованы в пользовательском коде; SQL Server загружает их непосредственно из глобального кэша сборок.

Библиотеки и пространства имен, поддерживаемые интеграцией со средой CLR в SQL Server:

  • CustomMarshalers

  • Microsoft.VisualBasic

  • Microsoft.VisualC

  • mscorlib

  • System;

  • System.Configuration

  • System.Data

  • System.Data.OracleClient

  • System.Data.SqlXml

  • System.Deployment

  • System.Security

  • System.Transactions

  • System.Web.Services

  • System.Xml

  • System.Core.dll

  • System.Xml.Linq.dll

Неподдерживаемые библиотеки

Неподдерживаемые библиотеки могут быть вызваны из управляемых хранимых процедур, триггеров, определяемых пользователем функций, определяемых пользователем типов и определяемых пользователем статистических функций. Неподдерживаемые библиотеки должны быть сначала зарегистрированы в базе данных SQL Server с помощью инструкции CREATE ASSEMBLY, прежде чем ее можно будет использовать в пользовательском коде. Любая неподдерживаемая библиотека, зарегистрированная и работающая на сервере, должна быть просмотрена и проверена в отношении безопасности и надежности.

Например, не поддерживается пространство имен System.DirectoryServices. Необходимо зарегистрировать сборку System.DirectoryServices.dll с разрешением UNSAFE, прежде чем ее можно будет вызвать из пользовательского кода. Разрешение UNSAFE необходимо, так как классы в пространстве имен System.DirectoryServices не соответствуют требованиям для разрешений SAFE и EXTERNAL_ACCESS. Дополнительные сведения см. в разделах Ограничения модели программирования на основе интеграции со средой CLR и Управление доступом для кода на основе интеграции со средой CLR.