代码之家  ›  专栏  ›  技术社区  ›  John

如何跟踪复制数据库和在Access中查看时出现的“找不到对象”错误?

  •  0
  • John  · 技术社区  · 15 年前

    我使用MS Access 2007查看位于SQL Server 2000和SQL Server 2005上的数据库中的表(通过*.adp文件)。

    我使用MS SQL Server Management Studio中的复制数据库任务将数据从SQL Server 2000(“实时”服务器)复制到SQL Server 2005(在本地计算机上)。副本似乎已成功执行。

    我有两个独立的*.adp文件。一个链接到实时服务器上的数据库,另一个链接到本地计算机上复制的数据库。

    我可以在本地机器上很好地处理DB上的大多数表,但其中一些表在我看到数据或设计视图之前导致Access抛出此错误:

    • 您拼错了对象名称。检查是否缺少下划线(_)或其他标点符号,并确保未输入前导空格。
    • 您试图打开链接表,但包含该表的文件不在您指定的路径上。使用链接表管理器更新链接并指向正确的路径。

    当我使用Access查看live DB上的表时,我没有同样的问题。另外,当我通过SQLServerManagementStudio查看本地数据库上的表时,我没有这个问题。

    不管怎样,我不知道从哪里开始找。我认为错误消息下面的两个建议不适用。

    有什么建议吗?谢谢你的帮助。

    更新:

    4 回复  |  直到 15 年前
        1
  •  2
  •   user158017    15 年前

    有没有可能这些表名会更长?当Windows路径加数据库名加表名长度超过256个字符时,我收到了类似的消息。

        2
  •  1
  •   John    15 年前

    在Access中保存表布局时会出现问题。它会导致在SQL Server中的表中添加扩展属性。引发错误的表具有这些扩展属性。没有扩展属性的表不会抛出错误。

    显然有人解决了这个错误 here 但他用的解决方案对我不起作用。

    我删除了有问题的表中的扩展属性,但这也没有解决问题。当我进入SQL Server Management Studio并将表脚本化为CREATE时,我发现扩展属性似乎并没有消失:

    去 EXEC sys.sp uu添加扩展属性@name=N'MS uu聚合类型',@value=-1,@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'tbl PRStatus',@level2type=N'COLUMN',@level2name=N'ID PRStatus'

    我想要 真正地 像这些扩展属性一样永远消失,因为我认为它们是问题所在,但我不知道如何摆脱它们。

        3
  •  1
  •   Amr ElGarhy    15 年前

    从SSMS编写CREATE脚本时,默认情况下将包括扩展属性。在重新创建表之前,需要手动删除这些。

        4
  •  1
  •   user729514    14 年前