使用 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 客户端库有关:
看起来第一个需要替换为第二个(不知道该怎么做)。有很多针对 VS Studio 和 C# 的建议,但没有针对 PowerShell invoke-sqlcmd 命令的具体建议。
我安装了.net core框架以及最新的.net框架。但没有运气。
更新: 我注意到这只是 VSCode 中的问题!该代码在 PowerShell ISE 中运行良好
尝试在Vs代码中安装
Microsoft.Data.SqlClient
,如下所示:
检查 VSCode 中的 PowerShell 版本: 同意@AlwaysLearning 确保您在 VSCode 和 PowerShell ISE 中使用相同版本的 PowerShell。您可以通过运行以下命令在 VSCode 中检查 PowerShell 版本:
PowerShell 命令:
$PSVersionTable.PSVersion
确保它与您在 PowerShell ISE 中使用的版本匹配。
确保您使用的是最新版本的 Visual Studio Code 和 PowerShell 扩展。更新有时可以解决兼容性问题。