【发布时间】:2012-09-06 22:57:17
【问题描述】:
我们目前的 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
但是,这个问题的答案似乎充满了关键字而不是实际的句子,这使得它很难理解。
如果有人可以提供帮助,将不胜感激。
非常感谢
菲尔
【问题讨论】:
-
在创建和引用对象时始终使用模式前缀。总是。告诉您的第 3 方公司他们没有通过。 sqlblog.com/blogs/aaron_bertrand/archive/2009/10/11/…
-
@Aaron Bertrand 不幸的是需要这些导出程序。它们是我们组织的要求。在我们升级网络之前,即使没有架构前缀,它们也可以正常工作,但现在不行了。有没有办法在用户登录数据库时自动将默认模式添加到表中?