Создать DLL из процедуры SQL Server - PullRequest
0 голосов
/ 12 октября 2010

У меня есть процедура на SQL Server! Теперь можно ли создать DLL из этой процедуры, и если это так, как я могу это сделать?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 12 октября 2010

Невозможно создать dll из хранимой процедуры - SQL Server хранит процедуру внутри себя как текст (более или менее) и только анализирует ее в исполняемые инструкции по мере необходимости.

Почему вы хотите создать dll из хранимой процедуры?

  • SQL Server способен выполнять код, содержащийся в файлах .dll, в форме расширений CLR - это то, что вы имеете в виду?
  • Если вы хотите запутать хранимую процедуру после ее завершенияустановлен, тогда вы можете зашифровать свою хранимую процедуру (однако вам все еще нужна версия в виде простого текста, чтобы изначально создать или обновить хранимую процедуру)

Обновление: Как я понимаюу вас есть некоторый код, написанный в форме хранимой процедуры, которую вы хотите иметь возможность вызывать из кода.Если это так, то у вас есть две опции:

  1. Переносить код в другую среду (например, C #, C ++)
  2. Сделать хранимую процедуру доступной где-нибудь в экземпляре SQL-сервера ивызовите код, используя обычные методы SQL.

Вариант 1 более понятен, однако при этом возникает риск того, что вы не сможете корректно перенести код (и это означает, что теперь вам, возможно, придется поддерживать один и тот же код в двух разныхместа - вы, возможно, сможете обойти это, используя расширения CLR или перефакторинг вашего кода)

Вариант 2 проще, но за счет снижения производительности, а также дополнительной сложности, гарантирующей, чтоэкземпляр SQL-сервера всегда доступен.

Не зная больше о том, что делает хранимая процедура, я бы посоветовал перейти к варианту 1, поскольку он, вероятно, даст вам наименьшую головную боль в долгосрочной перспективе.

2 голосов
/ 12 октября 2010

Нет, невозможно создать DLL из хранимой процедуры.

Можно вызвать DLL (как COM, так и CLR), когда включены определенные опции.

Может быть, вы могли бы объяснить, чего вы пытаетесь достичь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...