У меня есть VS2015 с SSDT, а также 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, которая неправильно загружается...