从SQL Server过程创建DLL

时间:2010-10-12 13:19:17

标签: sql sql-server tsql sql-server-2008

我在SQL Server上有程序!现在,是否有可能从该程序创建DLL,如果是,我怎么能这样做?

谢谢!

2 个答案:

答案 0 :(得分:5)

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

为什么你希望从存储过程创建一个DLL?

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

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

  1. 将代码移植到另一个环境(例如C#,C ++)
  2. 使存储过程在某个SQL Server服务器实例中可用,并使用常规SQL方法调用代码。
  3. 选项1更清晰,但是会引入您可能无法正确移植代码的风险(并且意味着您现在可能必须在两个不同的位置维护相同的代码 - 您可以通过使用CLR来解决这个问题扩展,或重新分解代码)

    选项2更简单,但是以性能开销为代价,加上确保SQL服务器实例始终可用的额外复杂性。

    在不了解存储过程的内容的情况下,我的建议可能与选项1一致,因为从长远来看,它可能会给您带来最少的麻烦。

答案 1 :(得分:2)

不,无法从存储过程创建DLL。

当打开某些选项时,可以调用DLL(COM和CLR)。

也许你可以解释一下你想要实现的目标?