powershell - 未找到调用 sql cmdlet/batchparser.dll
问题描述
尝试调用 invoke-sqlcommand cmdlet 时出现以下错误
“invoke-sqlcmd:无法加载文件或程序集'Microsoft.SqlServer.BatchParser,Version=14.100.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91'或其依赖项之一。系统找不到指定的文件。在第 1 行字符:1"
我使用了导入模块 SQLServer。我的系统上还有 SSMS 2017 以及 Visual Studio 2017 batchparser.dll 是正确的版本,甚至与错误脚本位于同一目录中,但我仍然收到此错误。
即使是简单的命令,如:invoke-sqlcmd -serverinstance 'xxxx' -query "Select @version"
失败。
谁能帮我吗?
解决方案
我认为您有这个问题是因为您运行的是 32 位 PowerShell。Invoke-SqlCmd 目前不支持 32 位。
- 移除了对该模块 64 位操作系统的限制。注意:Invoke-Sqlcmd cmdlet 是唯一不支持 32 位操作系统的 cmdlet。
来源:https ://www.powershellgallery.com/packages/Sqlserver/21.0.17279
运行 PowerShell 64 位,然后重试。
推荐阅读
- haskell - 玩箭头 (->)
- superset - 安装 docker 后我无法登录 Superset
- c# - Intrinsics - 只获取所有匹配的索引
- javascript - Node.js 中的异步函数
- r - 如何在 R 中将数据框添加为具有匹配名称的顶点属性?
- android - Android webview 返回 navigator.online true
- php - mPDF 仅在 Mac 上打印,出现格式错误:不是 pdf 或在 Windows 上已损坏
- json - Flutter 嵌套 JSON 到列表视图
- laravel-5.7 - Laravel 5.7 动态速率限制不起作用
- playframework - 在所有活动线程完成之前,Play Framework http 响应不会释放