1

我在 SQL Server 中有一个视图,比如说 MY_VIEW。

当我执行命令SELECT * FROM MY_VIEW时,它工作正常。但是,当我执行它时, SELECT * FROM dbo.MY_VIEW我得到 *Invalid object name 'MyDB.dbo.MY_VIEW'*

我使用 sa 连接到 SQL 服务器。

这有什么问题?我们什么时候应该使用 dbo.MY_VIEW 什么时候不应该使用?

更新: 视图上的模式名称是 dbo,当我创建视图时,我也与 sa 连接。

Update2我发现问题是区分大小写的排序规则。问题不是因为 dbo。字首。这是因为数据库排序规则区分大小写,并且查询中的表名大小写错误。

4

3 回答 3

1

您是否使用与 dbo 不同的模式名称创建对象?如果您在创建视图时没有对其进行限定,它将取决于您的用户帐户的默认架构名称。在 SQL 2k5 和 2k8 中,我相信默认行为是为每个用户创建一个新模式,而不是将它们分配给“dbo”模式。

于 2010-11-25T13:08:46.323 回答
1

您在主数据库中。您在 master 数据库中创建了视图。您的实际查询是SELECT * FROM MyDB.dbo.MY_VIEW. 请尝试在 MyDB 数据库中创建视图。

于 2010-11-25T14:41:59.997 回答
0

我发现问题是区分大小写的排序规则。问题不是因为 dbo。字首。这是因为数据库排序规则区分大小写,并且查询中的表名大小写错误。

于 2010-12-29T07:30:04.830 回答