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

使用PowerShell SqlServer模块时Invoke-Sqlcmd报错求助

解决Invoke-Sqlcmd无法加载Microsoft.SqlServer.BatchParser.dll的问题

根据你提供的模块信息,存在两个SqlServer模块实例(一个有效版本21.0.17099,一个无效的0.0版本),加上依赖DLL缺失或位数不匹配的可能,按以下步骤排查:

  • 清理重复模块并指定版本导入

    1. 强制卸载所有已加载的SqlServer模块:
      Get-Module SqlServer | Remove-Module -Force
      
    2. 查看所有已安装的SqlServer模块位置:
      Get-Module SqlServer -ListAvailable
      
    3. 找到版本为0.0的Script类型模块对应的文件夹,手动删除该无效模块。
    4. 重新导入指定版本的有效模块:
      Import-Module SqlServer -Version 21.0.17099 -Force
      

    之后再尝试执行Invoke-Sqlcmd。

  • 检查PowerShell位数与模块匹配
    SqlServer模块的依赖DLL分32位和64位版本,如果你当前使用的PowerShell位数与模块不匹配,会导致DLL加载失败:

    • 关闭当前PowerShell,打开对应位数的版本(比如64位的Windows PowerShell),重新导入模块并测试。
  • 重新安装SqlServer模块
    如果模块文件损坏,卸载后重新安装:

    1. 卸载所有版本的SqlServer模块:
      Uninstall-Module SqlServer -AllVersions -Force
      
    2. 重新安装指定版本:
      Install-Module SqlServer -Version 21.0.17099 -Force -AllowClobber
      
    3. 导入模块后执行Invoke-Sqlcmd测试。
  • 补充系统依赖组件
    Microsoft.SqlServer.BatchParser.dll属于SQL Server SMO(Shared Management Objects)组件的一部分,若系统缺失该组件:

    • 安装最新版的SQL Server Management Studio (SSMS),它会自动包含所需的SMO及依赖DLL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:05:12