![](/img/trans.png)
[英]Azure SQL: Invalid Object Name using Powershell's "Invoke-sqlcmd" on Adventureworks
[英]Invoke-Sqlcmd : Invalid object name 'Inventar'
所以,我试图通过Powershell使用Invoke-Sqlcmd-CMDLet运行SQL查询。 非常直接的前进:
Invoke-Sqlcmd -Query $Query -ServerInstance $DBServer -Database $DBName -Username $DBUser -Password $DBPass
($ Query是“ Select * FROM Inventar;
”)
现在我得到一个错误:
Invoke-Sqlcmd:无效的对象名称'Inventar'。 在行:1 char:1 + Invoke-Sqlcmd -Query $ Query -ServerInstance $ DBServer -Database $ DBName -Usernam ... + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ + CategoryInfo:InvalidOperation :( :) [Invoke-Sqlcmd],SqlPowerShellSqlExecutionException + FullyQualifiedErrorId:SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
无论如何,我能够使用以下查询运行命令:
SELECT * FROM INFORMATION_SCHEMA.TABLES;
它列出了数据库中的所有表格。
从那里我有表“Inventar”,这个问题的错误类型:
Azure SQL:在Adventureworks上使用Powershell的“Invoke-sqlcmd”无效的对象名称
除了我已经有-Database属性。
也许有人可以帮助我?
如果您执行类似Select * FROM Inventar
sql server将假定该表位于dbo
架构中。 如果不是,您将收到类似于您的错误。 解决方案是限定架构:( (database).schema.table
。 您的表位于名为
domain\\user\u003c/code>的模式中。
由于对象名称中不允许使用反斜杠,因此需要对其进行转义。 你可以通过围绕
[]
或""
的模式来做到这一点:
[****** \\ ******].[Inventar]
或
"****** \\ ******"."Inventar"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.