连接到 Azure SQL DB 时,Invoke-sqlcmd 引发异常“不支持关键字:'身份验证'”

问题描述 投票:0回答:1

使用 Invoke-SQLCMD PowerShell 命令连接 Azure SQLDB 时收到以下异常。

$conn = 'Server=tcp:MyServer.database.windows.net,1433;Database=MyDB;Authentication=Active Directory Integrated;Encrypt=True;'
$sql = 'SELECT * FROM sys.databases'
Invoke-Sqlcmd -ConnectionString $conn -Query $sql 

例外:

Invoke-Sqlcmd: Keyword not supported: 'authentication'.

我做了一些研究。这与 MS 客户端库有关:

  1. 系统.Data.SqlClient
  2. Microsoft.Data.SqlClient

看起来第一个需要替换为第二个(不知道该怎么做)。有很多针对 VS Studio 和 C# 的建议,但没有针对 PowerShell invoke-sqlcmd 命令的具体建议。

我安装了.net core框架以及最新的.net框架。但没有运气。

更新: 我注意到这只是 VSCode 中的问题!该代码在 PowerShell ISE 中运行良好

sql-server powershell azure-sql-database invoke-sqlcmd
1个回答
0
投票

尝试在Vs代码中安装

Microsoft.Data.SqlClient
,如下所示:

  • 添加扩展 Nuget Package Manager GUI .
  • 然后从下拉手册中选择View。选择命令面板。在 Command Palette 中选择 Nuget Package Manager GUI
  • . 将出现 Nuget 包管理器 GUI。选择安装新包。在搜索栏中输入 Microsoft.Data.SqlClient,然后单击 Search。点击安装 enter image description here

检查 VSCode 中的 PowerShell 版本: 同意@AlwaysLearning 确保您在 VSCode 和 PowerShell ISE 中使用相同版本的 PowerShell。您可以通过运行以下命令在 VSCode 中检查 PowerShell 版本:

PowerShell 命令:

$PSVersionTable.PSVersion

确保它与您在 PowerShell ISE 中使用的版本匹配。

确保您使用的是最新版本的 Visual Studio Code 和 PowerShell 扩展。更新有时可以解决兼容性问题。

© www.soinside.com 2019 - 2024. All rights reserved.