Использование расширенных хранимых процедур или SP_OA хранимых процедур для загрузки среды CLR в SQL Server не поддерживается.
Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 322884
Сводка
SQL Server 2005 и более поздних версиях содержат среду CLR и поддерживают процедуры, функции, триггеры, типы и агрегаты, написанные на языках CLR. В этих версиях нельзя загрузить среду CLR с помощью расширенных хранимых процедур или sp_OA
хранимых процедур.
Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 322884
Дополнительная информация
Сборка System.Runtime.InteropServices
платформа .NET Framework предоставляет надежную среду для вызова сборок из неуправляемого кода. Однако между внутренними реализациями СРЕДЫ CLR и SQL Server существует несколько технических несоответствий.
Threading
Чтобы повысить производительность, среда CLR реализует локальное хранилище потоков.
Кроме того, среда CLR использует только потоковое планирование и не поддерживает планирование в оптоволокном режиме. Однако SQL Server могут использовать оптоволоконный режим планирования. Чтобы настроить это свойство, выполните хранимую sp_configure
процедуру с помощью параметра упрощенного пула. Дополнительные сведения об этом разделе см. в статье Параметр конфигурации сервера с упрощенным пулом.
Память
Использование расширенных хранимых процедур и OLE-автоматизации выполняются в адресном пространстве виртуальной памяти памяти SQL Server. Память по умолчанию SQL Server — это лишь часть памяти, которую SQL Server потенциально может использовать, и среда CLR конкурирует с любыми существующими реализациями этих ресурсов памяти.
Взаимодействие COM
В этом разделе конкретно рассматривается использование OLE Automation в SQL Server и применяется как к внутрипроцессным, так и к внепроцессным com-объектам. Метаданные сборки для интерфейсов функций реализуют типизированный механизм для любых вызовов.
В рамках этой структуры вызываемая оболочка COM для сборки должна использовать внешний механизм сопоставления ClassID с членом управляемого класса. Из-за этого явного сопоставления нет возможности с неуправляемой точки зрения создать корневой список доступных интерфейсов.
Расширенная хранимая IUnknown::QueryInterface
процедура sp_oaCreate
использует интерфейс для определения поддержки объекта для определенного интерфейса. Взаимодействие между средой CLR и неуправляемым кодом зависит от интерфейса IDispatch для реализации интерфейсов. Так как в сборке на основе CLR нет эквивалента методу QueryInterface
, невозможно создать экземпляр объекта .
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по