从非dbo查询模式中选择表会导致错误

时间:2013-01-24 20:55:05

标签: sql sql-server sql-server-2008

我在汽车模式中有一些表。

我将用户的默认架构更改为car但是当我尝试执行以下操作时:

select * from toyota

我仍然得到以下内容:

  

Msg 208,Level 16,State 1,Line 2无效的对象名称't​​oyota'。

我必须在{I}之前指定car

select * from car.toyota

我已经这样做了:

ALTER USER mex WITH NAME = mex;

ALTER USER mex WITH DEFAULT_SCHEMA = car;

还有什么我想念的吗?如何保留car架构,但仍然只能使用表名查询它?

2 个答案:

答案 0 :(得分:1)

通常在使用select语句之前必须这样做:

USE [Car]
GO
SELECT * FROM TOYOTA

如果您正在使用Latin1_General_CI_AI排序规则,那么这是当然的。否则,您必须非常小心区分大小写的数据库。

答案 1 :(得分:0)

更改用户的默认架构应该可以解决问题。所以,我不得不问一个愚蠢的问题:你是否以你更改了默认架构的用户运行此查询?