Как диагностировать это исключение из Invoke-Sqlcmd?
Я запускаю следующую команду (наименьший воспроизводимый пример, который я смог придумать):
Invoke-Sqlcmd "select * from sys.databases" | %{
Invoke-Sqlcmd "select 1"
}
Я получаю следующую ошибку:
Invoke-Sqlcmd: не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что "pipe.resources" был правильно внедрен или связан с сборкой "System.Management.Automation" во время компиляции, или что все требуемые сателлитные сборки являются загружаемыми и полностью подписаны. В строке:1 символ:1 + Invoke-Sqlcmd "select * from sys.databases" | %{ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidResult: (:) [Invoke-Sqlcmd], MissingManifestResourceException + FullyQualifiedErrorId: ExecutionFailed,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
Надоело это:
- как с ISE, так и с командной строкой
- как повышенный ("запуск от имени администратора"), так и нет
- против SQL 2012 и SQL 2008
- с Windows 8 и с Server 2008
Во всех случаях результат один и тот же.
Почему и как поставить диагноз?
1 ответ
Я также заметил проблемы с использованием invoke-sqlcmd для объединения команд invoke-sqlcmd через конвейер. Обходной путь, который, кажется, решает проблему, сохраняет выходные данные первой команды в переменную, а затем направляет выходные данные к следующему вызову invoke-sqlcmd.
$databases = Invoke-Sqlcmd "select * from sys.databases"
$databases | % { Invoke-Sqlcmd "select 1" }