为什么我的视图是在我的用户模式中创建的?

Why is my view created in my user schema?

我正在使用 MSSQL Studio 并使用我的 windows 凭据 (DOMAIN\user) 连接到 SQL Server 2014。

我刚刚创建了一个新视图,想知道为什么其他用户找不到它:

CREATE VIEW abc AS SELECT 1 AS a

意外地,此视图不是在 dbo 架构中而是在 DOMAIN\user 中创建的。 要在 dbo 模式中创建视图,我需要执行:

CREATE VIEW dbo.abc AS SELECT 1 AS a

这让我很吃惊,因为我多年来一直在没有明确架构的情况下创建视图,并且一直是在 dbo 中创建的 – 从今天开始。

可能是什么原因?

检查安全 -> 登录 -> 您的用户 - 用户映射。对于所有选定的地图,您的 "Default Schema" 应更改为 dbo。

您可以将默认模式更改为 dbo,但作为最佳实践,视图应编写脚本以包含该模式。在 dbo 的情况下,句点多了 4 个字符,但它可以防止这些类型的问题。