gpt4 book ai didi

sql - AdventureWorks 数据库和 dbo 前缀

转载 作者:行者123 更新时间:2023-12-02 18:09:16 24 4
gpt4 key购买 nike

我已下载 AdventureWorks 数据库并将其附加到我的本地 SQL Server 2005 Developer Edition。但不幸的是,并非所有表和其他数据库对象都有 dbo 前缀。当我想运行一些查询时,我必须针对名为 Production.Contact 的表执行此操作。我想运行这样的查询:

select * from Contact

而不是

select * from Person.Contact

我想了解为什么有些表有前缀 dbo 而其他表没有。我希望所有表都有 dbo 前缀,并且我可以使用它们的名称运行查询,而无需任何其他前缀(我的意思是架构名称)。人是一个架构名称。我不想在我的查询中必须包含此内容。 :(

我怎样才能实现这个目标?

请帮忙。

最佳答案

您看到的 dbo 前缀称为架构。对于产品来说也是如此。该架构有点像 sql server 的命名空间。如果您想尝试将产品架构中的表传输到 dbo 架构,您可以使用以下语法:

ALTER SCHEMA dbo TRANSFER product.[someTable]

但是,如果产品架构中的表名称已存在于 dbo 架构中,则您将无法执行此操作,因为不能有两个同名的表。大多数情况下,您的架构将用于组织目的。

添加

您不需要添加“dbo”的原因。查询中的架构前缀是因为这是每个数据库的默认架构。当您在没有此架构的情况下编写查询时,SQL Server 只是假设您的意思是“dbo”。一些最佳实践表明您的查询应始终包含架构。

关于sql - AdventureWorks 数据库和 dbo 前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com