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

SSMS v19.1下Excel单元格参数传入SQL Server的实现求助

问题解决:Excel 365 连接 SQL Server 并实现参数传递(替代SNAC 11)

核心问题

SSMS v19.1移除了SQL Server Native Client (SNAC) 11,导致原有依赖该驱动的Excel参数查询连接失效,且新建连接时Properties/Definition窗口的Parameters选项呈灰色不可用。

解决方案步骤

1. 替换驱动:改用ODBC Driver for SQL Server

SNAC已被微软弃用,官方推荐使用ODBC Driver 17/18 for SQL Server,这是支持Excel参数传递的替代方案。

新建连接流程:

  • 打开Excel,点击「数据」选项卡 → 「获取数据」→ 「从数据库」→ 「从SQL Server数据库」
  • 输入服务器名称SQL-CSC和数据库CCRDR,选择「使用Windows身份验证」(对应原连接的Trusted_Connection=Yes)
  • 连接成功后,选择直接输入自定义SQL(即你的示例查询)
  • 关键:加载数据前点击「转换数据」进入Power Query编辑器,在这里完成参数绑定

2. 在Power Query中实现参数传递(替代原Parameters窗口)

新驱动不支持旧版ODBC参数机制,需通过Power Query关联单元格:

  • 在Power Query编辑器中,点击「主页」→ 「参数」→ 「新建参数」
    • 参数名称:Sample_Location_Param
    • 类型:文本(匹配字段类型)
    • 当前值:先填测试值(如LabA)
  • 修改查询SQL,将?替换为参数:
    SELECT * 
    FROM [CCR].[SampleData]
    WHERE (SampleType = 'Chemical') AND (Sample_Location = @Sample_Location_Param)
    
  • 右键查询步骤 → 「编辑参数」→ 选择「从单元格获取值」,指定参数对应的单元格(如Sheet1!$A$1)
  • 关闭Power Query编辑器,选择「关闭并上载」,查询会自动读取单元格值作为参数

3. 快速修改现有连接字符串

若不想重新创建连接,可直接替换驱动:
原连接字符串:

Description=CCR_Query;DRIVER=SQL Server Native Client 11.0;SERVER=SQL-CSC;UID=MyName;Trusted_Connection=Yes;APP=Microsoft Office;WSWS=CSCENG022020;DATABASE=CCRDR;

修改为(使用ODBC Driver 17):

Description=CCR_Query;DRIVER=ODBC Driver 17 for SQL Server;SERVER=SQL-CSC;Trusted_Connection=Yes;APP=Microsoft Office;DATABASE=CCRDR;

注意:移除UID=MyName,因Trusted_Connection=Yes已使用Windows身份验证,无需单独指定UID

修改后仍需通过Power Query设置参数关联。

需向IT部门说明的事项

  • 需要在你的电脑上安装ODBC Driver 17或18 for SQL Server(微软官方免费驱动,可直接从微软下载中心获取)
  • 无需额外数据库权限,原Windows身份验证权限即可使用
  • 兼容性说明:ODBC Driver 17+支持SQL Server 2012及以上版本,与现有数据库兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:33:21