UDF 在 SQL Server 中调用外部 C++ 代码
Posted
技术标签:
【中文标题】UDF 在 SQL Server 中调用外部 C++ 代码【英文标题】:UDF calling external C++ code inside SQL Server 【发布时间】:2011-06-02 15:21:23 【问题描述】:假设我在 SQL Server 2008 中有一个 UDF:
Create function dbo.ReadXml (@xmlMatrix xml) returns table
as
return
( select
--SOME C++ CODE
)
go
是否可以在 UDF 中添加 c++ 代码或调用 c++ 函数?
【问题讨论】:
【参考方案1】:如果此 C++ 函数已编译并安装为 extended stored procedure,则为 Onyl。 但是扩展存储过程已被弃用,很快就会被删除。
所以你唯一可靠的选择是写一个CLR function。它可以是调用外部 C++ dll 的 C# CLR 函数,也可以是直接包含您的代码的托管 C++ CLR 函数。
【讨论】:
好的,所以步骤是: - 有一个 C# CLR 函数 - 这个 C# 函数调用外部 C++ dll.... C# 将如何调用 C++ dll?我不太明白那一步... @cMinor 通过使用DllImportAttribute。 正如您所回答的,您推荐什么,C# CLR 函数还是托管 C++ 函数? @cMinor 任何对您来说更容易使用/维护的东西。对我来说,拥有一个单独的 C++ dll 会更容易,因为我对托管 C++ 太不熟悉了。但是,拥有一个托管 C++ 程序集的优点是需要最低权限 (SAFE
),因为您不会尝试从外部加载某些内容。以上是关于UDF 在 SQL Server 中调用外部 C++ 代码的主要内容,如果未能解决你的问题,请参考以下文章
在 Java 中调用 SQL Server 用户定义函数 (UDF)
从 VB Access 调用 UDF(Sql server)“表达式中的未定义函数 <函数名>”