繁体   English   中英

Invoke-Sqlcmd:无效的对象名称'Inventar'

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM