【发布时间】:2018-09-06 19:17:39
【问题描述】:
我在 Linux Ubuntu 16.04 上使用最新版本的 Powershell 内核。我正在尝试使用 powershell 的 invoke-sqlcmd cmdlet 查询 sql server 数据库。 (是的,我已经安装了 sqlserver 模块) 我收到一条错误消息,提示它找不到 cmdlet。当我安装 sqlserver 模块时,该命令在 windows powershell 中。 Screenshot of the same
invoke-sqlcmd 是否仅适用于 Windows?如果是,是否有另一种方法可以在 powershell 核心中实现相同的结果。
【问题讨论】:
-
找到了解决方案。我没有使用 Invoke-sqlcmd,而是在调用命令中使用普通的 sqlcmd。效果很好。
-
你能详细说明你是怎么做到的吗?
-
因为“sqlcmd”仍然可以在托管数据库的服务器中工作。我选择了调用命令 cmdlet。在调用命令中,我调用了调用表达式命令,并将 sqlcmd 作为参数传递给调用表达式 cmdlet。
-
Invoke-Command Invoke-Expression "sqlcmd -i ./dropDatabaseScript.sql"怎么样?也许您可以将其作为答案?有更多细节吗? -
确实以上对我有用!我把它分成四个部分。我有一个包含多个脚本的文件夹,我想运行
$files = "./*.sql";$command = 'sqlcmd -i $_';(还添加了 dbname/user/psw 等)$expression = { Invoke-Expression $command };Resolve-Path $files | ForEach-Object { Invoke-Command -ScriptBlock $expression};
标签: powershell-core