今天使用PowerShell时,遇到下面的报错信息:
无法将“Invoke-SqlCmd”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:3 字符: 38
+ $list | ForEach-Object {Invoke-SqlCmd <<<< -Query "create database $_"}
+ CategoryInfo : ObjectNotFound: (Invoke-SqlCmd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
根据MSDN上的信息,感觉原因是未指定实例,于是执行了下面的命令,但是报错了(网上搜了一圈,没看到其根本原因,或许是因为MS为了便利DBA便将其集成到SSMS的原因,往下看便知):
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
我们可以通过右击实例,然后单击“启动PowerShell(H)”来打开对应的PowerShell工具:
这里可以执行下面的命令:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
同时,在执行Invoke-SqlCmd时,也不会再报下面的错误。
无法将“Invoke-SqlCmd”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:3 字符: 38
+ $list | ForEach-Object {Invoke-SqlCmd <<<< -Query "create database $_"}
+ CategoryInfo : ObjectNotFound: (Invoke-SqlCmd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException