【问题标题】:How to solve 'invalid object name' in SQL Server?如何解决 SQL Server 中的“无效对象名称”?
【发布时间】:2023-03-23 00:20:02
【问题描述】:

这是返回的错误信息:

消息 208,第 16 级,状态 1,第 1 行 无效的对象名称“ENG_PREP”。

在我尝试以下查询后会发生这种情况:

insert into ENG_PREP VALUES('572012-01-1,572012-01-2,572012-01-3,572013-01-1,572013-01-2',
'',
'500',
'',
'A320 P.001-A',
'Removal of the LH Wing Safety Rope',
'',
'',
'',
'0',
'',
'AF',
'12-00-00-081-001',
'',
'',
'',
'',
'',
'',
'' )

【问题讨论】:

  • 嗯,这只是意味着在您运行查询的任何数据库中,都没有“ENG_PREP”表。您是否在 Management Studio 中运行此程序,并且可能不小心将其留在 [master] 上?在上面加上USE [YourDatabaseName],看看会发生什么。

标签: sql sql-server-2005


【解决方案1】:

表示它不知道ENG_PREP是什么。

您需要首先使用'use xxx'(其中xxx 是ENG_PREP 所在的数据库名称)命令来告诉它您正在使用什么数据库。一旦你这样做了,你需要确保 ENG_PREP 存在于该数据库中。

如果您使用 .Net 进行连接,则需要确保指定初始目录,以便它知道要使用的数据库,这是来自 web.config 的示例摘录:

<add name="SqlConnection" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=your_db_name_here;Integrated Security=True"
     providerName="System.Data.SqlClient" />

【讨论】:

    【解决方案2】:

    我的意思是表 ENG_PREP 在您使用的连接中不存在。

    检查您是否连接到正确的服务器/数据库。还要检查表名。

    【讨论】:

      【解决方案3】:

      听起来好像找不到表。

      检查您是否连接到正确的数据库。
      该表存在且拼写正确。

      【讨论】:

        【解决方案4】:

        这并不一定意味着它在您的 SQL 插入查询本身中找不到“ENG_PREP”。检查在该表上运行的所有触发器,并确保所有触发器的表名拼写正确。

        这只是在调试存储过程时发生在我身上,我花了半个小时才找到它。

        【讨论】:

          【解决方案5】:

          我在纯文本查询中也遇到了这个错误。在我的 Web 应用程序中,我使用了三个连接字符串。我已经指定了具有特定数据库名称和表名称的查询。我的错误得到了解决。希望它可以对某人有用..

          【讨论】:

            【解决方案6】:

            目前正在学习 SQL Server 机器学习服务,我遇到了同样的问题,即数据库表从下一层拉取,但 FROM 的位置与查找当前位置不同。

            所以我准确地写了数据来自哪里:

            FROM [WideWorldImporters].[Application].[Cities_Archive]
            

            希望这可以在初始阶段有所帮助

            【讨论】:

              猜你喜欢
              • 2018-07-13
              • 2018-04-22
              • 2018-08-08
              • 1970-01-01
              • 2023-02-07
              • 2018-03-16
              • 1970-01-01
              • 2011-03-19
              • 2019-12-09
              相关资源
              最近更新 更多