为什么SQL Server中的表名以“ dbo”开头?


Answers:


233

dbo是SQL Server中的默认架构。您可以创建自己的架构,以更好地管理对象名称空间。


22
作为最佳实践,我总是添加“ dbo”。前缀,即使没有必要。在SQL中,大多数时候最好明确一些。
SurroundedByFish

3
@SurroundedByFish:可能不是最佳实践,但由于我不是SQL专家,所以我可能会错。 stackoverflow.com/a/769639/602245
Brett

13
本文从一个不同的答案中声称,这实际上是一种最佳实践:“代码不必使用完全限定的名称,尽管这样做可以提高性能,并且被认为是最佳实践。”
卡尔·G

7
另外,您链接的答案还建议包含“ dbo”。这样优化程序就不必查找架构。
卡尔·G

7
dbo不是一个好习惯。创建您自己的架构,并始终使用它。dbo仅存在一个迁移技巧,因此SQL Server 2005之前的版本可以继续工作。是的,始终对perf使用架构。不,不是迁移版本(例如dbo)。
大卫·贝兹

85

如果使用的是Sql Server Management Studio,则可以通过浏览到数据库-数据库-安全性-架构来创建自己的架构。

使用脚本创建一个脚本很容易(例如):

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

您可以使用它们在逻辑上对表进行分组,例如,通过为“财务”信息创建一个架构,为“个人”数据创建另一个架构。您的表格将显示为:

Financial.BankAccounts Financial.Transactions Personal.Address

而不是使用dbo的默认架构。


您知道使用实体框架时是否会引起任何问题吗?
batmaci

6
您可以将Schema与Entity Framework一起使用-甚至可以先使用代码,如果您愿意:[Table("Customer", Schema = "MySchema")]
Fenton

“ AUTHORIZATION [dbo]”是否授予与架构上dbo相同的权限,还是我仍需要向用户授予权限?
Mark Micallef 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.