从SQL Server过程创建dll

use*_*271 0 sql t-sql sql-server sql-server-2008

我在SQL Server上有程序!现在,是否可以从该过程创建dll,如果可以,我该怎么做?

谢谢!

Jus*_*tin 5

无法从存储过程创建dll-SQL Server在内部将过程存储为文本(或多或少),并且仅在需要时将其解析为可执行指令。

为什么要从存储过程创建dll?

  • SQL Server能够运行CLR扩展名形式的.dll文件中包含的代码-这是什么意思?
  • 如果您希望在安装存储过程后对其进行混淆处理,则可以对存储过程进行加密(但是,仍然需要纯文本版本才能最初创建或更新存储过程)

更新:据我了解,您已经以存储过程的形式编写了一些代码,希望能够从代码中调用它们。如果是这种情况,那么您有两种选择:

  1. 将代码移植到另一个环境(例如C#,C ++)
  2. 使存储过程在某个地方的SQL Server实例中可用,并使用常规SQL方法调用代码。

选项1更干净,但是带来的风险是您可能无法正确移植代码(这意味着您现在可能必须在2个不同的地方维护相同的代码-但是,您可以使用CLR扩展来解决此问题,或者重新整理您的代码)

选项2更简单,但是以性能开销为代价,并且增加了确保SQL Server实例始终可用的复杂性。

如果不了解更多有关存储过程的信息,我的建议可能是选择选项1,因为从长远来看,它可能会给您带来最少的麻烦。