我们目前的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
然而,关于这个问题的答案似乎充满了关键词而非实际句子,这使得它很难理解。
如果有人可以提供帮助,我们将不胜感激。
非常感谢
菲尔
答案 0 :(得分:1)
将第三方用户名的默认架构设置为其未加前缀的引用应指向的架构:
ALTER USER foo WITH DEFAULT_SCHEMA = [bar];
(这与拥有架构不同。)
告诉他们正确编写软件。在SQL Server中,您应始终指定模式名称,即使您始终使用dbo
。