【发布时间】:2018-12-04 22:04:39
【问题描述】:
我在我的 PowerShell 脚本中遇到了 sqlps 的问题。我正在尝试从表中选择行并将它们保存到 .csv 文件中。
查询是
$TABLE="events"
Import-Module sqlps
$SQLquery='SELECT * FROM dbo.$TABLE'
$result=invoke-sqlcmd -query $SQLquery -HostName LOCALHOST -Password test -Username test
$result |export-csv c:\TEST.csv -notypeinformation
我收到此错误:
invoke-sqlcmd : Login failed for user 'test'.
At line:6 char:9
+ $result=invoke-sqlcmd -query $SQLquery -HostName LOCALHOST -Password ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
+ FullyQualifiedErrorId : SqlExectionError,Microsoft.SqlServer.Management.
PowerShell.GetScriptCommand
invoke-sqlcmd :
At line:6 char:9
+ $result=invoke-sqlcmd -query $SQLquery -HostName LOCALHOST -Password ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd], ParserException
+ FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
有人可以帮忙吗?
【问题讨论】:
-
看一下Sql Server的日志文件。它将包含更详细的错误消息。
-
$SQLQuery变量的单引号意味着它实际上是在查找$TABLE,而不是我认为您的意思的events表。哦,密码可能是错误的,我没看错! -
通过添加
Write-Host $SQLQuery进行检查,这将显示变量包含的内容 -
在哪里指定要连接的数据库?您是否连接到特定的 SQL Server 实例?
-
数据库在哪里?您正在运行的示例假定数据库位于运行代码的同一台机器上。如果这是正确的,那么凭据一定是错误的。正如@DavidBrabant 所说,通常需要
-Database开关
标签: powershell sqlps