【发布时间】:2018-01-16 14:50:22
【问题描述】:
我安装了带有SSDT 的VS2015,以及SSMS 和SqlServer PowerShell 模块(包括invoke-sqlcmd 命令),但是如果我尝试对Azure SQL 数据仓库执行查询,例如所以:
invoke-sqlcmd -Query "Select top 5 * from customer" -ConnectionString "Server=tcp:my.database.windows.net,1433;Database=Customer; Authentication=Active Directory Integrated; Encrypt=True; "
我收到以下错误:
invoke-sqlcmd : Unable to load adalsql.dll (Authentication=ActiveDirectoryIntegrated). Error code: 0x2. For more information, see
http://go.microsoft.com/fwlink/?LinkID=513072
At line:1 char:1
+ invoke-sqlcmd -Query "Select top 5 * from vwOffer" -ConnectionStrin ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
+ FullyQualifiedErrorId : SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
invoke-sqlcmd :
At line:1 char:1
+ invoke-sqlcmd -Query "Select top 5 * from vwOffer" -ConnectionStrin ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd], ParserException
+ FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptComman
如果我尝试直接安装adalsql.dll,我会收到一条消息,指出A higher version already exists,我可以看到两个版本的dll都可以在这里找到:
C:\Windows\SysWOW64\adalsql.dll
C:\Windows\System32\adalsql.dll
然而,invoke-sqlcmd 找不到它。知道如何 (A) 注册现有的 dll 以便 invoke-sqlcmd 可以找到它或 (B) 卸载它以便重新安装吗?
顺便说一句,我我能够将 Active Directory Authenticatoin 与 32 位 SQLCMD.exe 一起使用,所以我知道 32 位 dll 工作正常。只是 64 位 dll 加载不正确...
【问题讨论】:
-
我也有同样的问题。刚才我从 appwiz.cpl 卸载了 SQL Server 的 Active Directory 身份验证库并重新安装,它可以工作吗?这是我使用的安装程序:microsoft.com/en-us/download/confirmation.aspx?id=48742
-
如果您发布上述答案并通过
settings包括卸载>Add or Remove Programs我会接受它作为答案。我整个早上都在苦苦挣扎,试图弄清楚如何重新安装它......