0

我们目前的 MSSQL 2005 数据库存在问题。我们最近经历了从 windows server 2003 到 2008 的迁移。SQL Server 保持为 2005。我正在使用 SQL Server Management Studio 进行工作。

数据库中的所有表都遵循以下格式:[SCHEMA].[TABLE_NAME]

当我输入 SQL 时:

SELECT * FROM [table_name]

我收到错误消息:无效的对象名称“[table_name]”。

如果我输入:

SELECT * FROM [schema].[table_name]

这工作正常。我们登录数据库的用户名拥有所有表名前面的模式。

问题是,我们有第三方公司拥有从数据库导出数据的软件。2 家公司现在尝试运行他们的出口商,但是收到错误“无效的对象名称”。该软件正在使用拥有该架构的用户名登录。

我的问题与我在互联网上找到的问题完全相同: http ://www.sqlteam.com/forums/topic.asp?TOPIC_ID=99802

然而,该问题的答案似乎充满了关键字而不是实际的句子,这使得它很难理解。

如果有人可以提供帮助,将不胜感激。

非常感谢

菲尔

4

1 回答 1

1

将第 3 方用户名的默认架构设置为其无前缀引用应指向的架构:

ALTER USER foo WITH DEFAULT_SCHEMA = [bar];

(这与拥有架构不同。)

并告诉他们正确编写软件。在 SQL Server 中,您应该始终指定架构名称,即使您始终使用dbo.

于 2012-09-06T14:57:17.677 回答