Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 mssql 2005中的对象名称无效_Sql Server 2005_Schema - Fatal编程技术网

Sql server 2005 mssql 2005中的对象名称无效

Sql server 2005 mssql 2005中的对象名称无效,sql-server-2005,schema,Sql Server 2005,Schema,目前,我们的MSSQL 2005数据库存在问题。我们最近经历了从windows server 2003到2008的迁移。SQL Server一直保持到2005年。我正在使用SQLServerManagementStudio进行工作 数据库中的所有表都遵循以下格式:[SCHEMA].[TABLE\u NAME] 当我输入SQL时: SELECT * FROM [table_name] 我收到错误消息:对象名称“[table_name]”无效 如果我输入: SELECT * FROM [schem

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

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

当我输入SQL时:

SELECT * FROM [table_name]
我收到错误消息:对象名称“[table_name]”无效

如果我输入:

SELECT * FROM [schema].[table_name]
这个很好用。我们登录数据库时使用的用户名拥有所有表名前面的模式

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

我的问题与我在互联网上发现的问题完全相同:

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

如果有人能帮忙,我将不胜感激

非常感谢


Phil

将第三方用户名的默认模式设置为其无前缀引用应指向的模式:

ALTER USER foo WITH DEFAULT_SCHEMA = [bar];
(这与拥有架构不同。)


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

也应始终在创建和引用对象时使用架构前缀。总是。告诉你的第三方公司他们没有通行证@不幸的是,Aaron Bertrand需要这些导出程序。这是我们组织的要求。在我们升级网络之前,即使没有模式前缀,它们也可以工作,但现在不行了。当用户登录到数据库时,是否有一种方法可以自动将默认模式前置到表中?感谢您的响应。我已经执行了这个查询,但是当您输入一个不固定的表名时,仍然会出现无效的对象名。您确定您调整了用户连接的用户名吗?您是否已检查是否未使用
executeas
?您是否检查了表所属的实际架构?顺便说一下,这些只是黑客。如果有人将其中一个表移动到不同的模式,您的应用程序将再次中断。解决办法是停止接受第三方的废话。