You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft.SqlServer.Server中SqlProcedureAttribute类型缺失问题求助

解决SQL CLR集成中SqlProcedureAttribute不存在的问题

问题原因

你遇到的错误核心是.NET 8(属于.NET Core/.NET 5+系列)与微软示例默认依赖的.NET Framework在CLR集成API的分布上存在差异:

  • 在.NET Framework环境中,SqlProcedureAttribute属于System.Data.dll的Microsoft.SqlServer.Server命名空间,无需额外安装NuGet包;
  • 在.NET Core/.NET 5+(包括.NET 8)环境中,该属性被迁移到了Microsoft.Data.SqlClient.Server命名空间,需要对应NuGet包提供支持。

具体解决步骤

  1. 安装正确的NuGet包
    在项目中安装Microsoft.Data.SqlClient包(注意不要使用已被弃用的System.Data.SqlClient),可以通过NuGet包管理器或命令行执行:

    Install-Package Microsoft.Data.SqlClient
    
  2. 调整代码中的命名空间与属性引用
    修改代码里的命名空间导入和属性标记,适配.NET 8的API位置:

    using System;
    using System.Data;
    using Microsoft.Data.SqlClient.Server; // 替换原Microsoft.SqlServer.Server
    using System.Data.SqlTypes;
    
    public class HelloWorldProc
    {
        [Microsoft.Data.SqlClient.Server.SqlProcedure] // 更新属性命名空间
        public static void HelloWorld(out string text)
        {
            SqlContext.Pipe.Send("Hello world!" + Environment.NewLine);
            text = "Hello world!";
        }
    }
    
  3. 验证SQL Server版本兼容性
    确保你的SQL Server版本支持.NET 8的CLR集成:SQL Server 2022及以上版本支持.NET 6+,如果是SQL Server 2019或更早版本,建议将项目降级到.NET 6,因为旧版本SQL Server仅支持到.NET 5/6。

内容的提问来源于stack exchange,提问作者Patrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:05:25