栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何执行直接添加到SSDT sqlproj中的SQLCLR UDF并解决参考错误SQL71501

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何执行直接添加到SSDT sqlproj中的SQLCLR UDF并解决参考错误SQL71501

您必须添加包含CLR代码的已编译DLL作为参考。因此,在您的MyDb SSDT项目->参考(右键单击)->添加参考下,浏览到DLL。

如果您在同一解决方案中有CLR(类库)项目,则可能可以引用该项目而不是DLL,但是在我的情况下,我引用的是DLL(为单独的解决方案编译)。

至于

AS EXTERNAL NAME
行的格式:

AS EXTERNAL NAME [AssemblyName].[ClassName].[FunctionName]

注意: 对于CLR对象,为了简化起见,我从类/代码周围删除了名称空间,因为此步骤通常是最有问题的。容易混淆AssmeblyName /
DLL名称/命名空间。通过访问“项目属性”->“应用程序”->“程序集名称:”,可以在CLR类库项目中找到AssemblyName。我会从中删除所有非字母数字/空格,只是为了简化名称并排除出现问题。

因此,我会尝试一下,一旦您能正常工作,如果您真的想要名称空间,则可以添加名称空间并从中找出语法,至少您知道其他部分是正确的。


确定,您实际上在同一个SSDT项目中有一个* .cs文件。所以在这种情况下,如果您的代码是这样的:

CS文件:

public partial class UserDefinedFunctions{    [Microsoft.SqlServer.Server.SqlFunction]    public static SqlString SqlFunction1()    {        // Put your pre here        return new SqlString (string.Empty);    }}

SQL文件:

CREATE PROCEDURE ClrMethod1  RETURNS [int] WITH EXECUTE AS CALLERAS EXTERNAL NAME [MyDB].[UserDefinedFunctions].[SqlFunction1]

这为我编译。 注意: 再次没有使用名称空间。当我执行Add New Item …时,生成的代码没有命名空间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号