2

在我的本地或专用服务器上,当我创建表时,我看到表名如下:

dbo.Foo

由于我从某个 plesk 环境中获得了一个数据库帐户,因此创建的表的名称为:

mydbuser.Foo

前缀对我的代码有什么影响?或者如果我从我的备份中创建一个表/恢复一个表,我应该期待奇怪的结果吗?

4

2 回答 2

2

dbo 是在您创建表时分配给表的默认架构,并且不显式分配架构。数据库模式是一种对表、视图、存储过程等对象进行逻辑分组的方法。您可以在此处阅读有关模式的更多信息

前缀对我的代码有什么影响?

如果您没有在代码中指定架构,那么它将采用 dbo 作为默认值。虽然如果你有一个表的模式不是 dbo,那么你也必须在你的代码中指定,否则它不会执行。

如果我创建一个表/从我的备份中恢复一个表,我应该期待奇怪的结果吗?

模式并不邪恶。如果您正确指定它们,一切都应该没问题。

于 2013-07-24T12:43:08.903 回答
0

德博

它是模式。如果没有为用户帐户定义默认架构,SQL Server 将假定 dbo 是默认架构。

根据MSDN

SQL Server 2005 引入了数据库模式的概念以及数据库对象与用户所有权之间的分离。数据库用户拥有的对象不再与该用户绑定。该对象现在属于一个模式——一个可以容纳许多数据库对象的容器。架构所有者可能拥有一个或多个架构。这个概念创造了在数据库中公开数据库对象以供使用的机会,同时保护它们不被修改、使用不良查询技术直接访问或被所有者以外的用户删除。

要创建自己的 Schema,可以使用以下脚本:

CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]

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

金融.Foo

个人.Foo

于 2013-07-24T12:51:11.307 回答