2010-10-12 2 views
-1

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

Спасибо!

+0

@ user238271, при нормальных обстоятельствах бессмысленно выполнять хранимую процедуру SQL вне среды SQL. Если вы не можете объяснить * особые * обстоятельства, которые делают это необходимым и желательным для этого, ответ: ** нет **. –

+0

-1 за неуместные ответы. То есть вы не можете этого сделать. – gbn

ответ

4

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

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

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

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

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

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

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

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

+0

Я просто хочу поместить код из хранимой процедуры в DLL! Мне нужно вызвать dll вместо процедуры SQL-сервера! – user238271

+1

@ user238271 - и Краген просто сказал вам, что вы можете перенести код в C#/C++ (или даже VB.NET, VB6, любую) DLL. Вы * не можете * создать DLL из хранимой процедуры. – LittleBobbyTables

2

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

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

Возможно, вы можете бы понять, что вы пытаетесь достичь?

+0

Я просто хочу поместить код из хранимой процедуры в DLL! Мне нужно вызвать dll вместо процедуры SQL-сервера! – user238271

Смежные вопросы