在我的本地或专用服务器上,当我创建表时,我看到表名如下:
dbo.Foo
由于我从某个 plesk 环境中获得了一个数据库帐户,因此创建的表的名称为:
mydbuser.Foo
前缀对我的代码有什么影响?或者如果我从我的备份中创建一个表/恢复一个表,我应该期待奇怪的结果吗?
在我的本地或专用服务器上,当我创建表时,我看到表名如下:
dbo.Foo
由于我从某个 plesk 环境中获得了一个数据库帐户,因此创建的表的名称为:
mydbuser.Foo
前缀对我的代码有什么影响?或者如果我从我的备份中创建一个表/恢复一个表,我应该期待奇怪的结果吗?
dbo 是在您创建表时分配给表的默认架构,并且不显式分配架构。数据库模式是一种对表、视图、存储过程等对象进行逻辑分组的方法。您可以在此处阅读有关模式的更多信息
前缀对我的代码有什么影响?
如果您没有在代码中指定架构,那么它将采用 dbo 作为默认值。虽然如果你有一个表的模式不是 dbo,那么你也必须在你的代码中指定,否则它不会执行。
如果我创建一个表/从我的备份中恢复一个表,我应该期待奇怪的结果吗?
模式并不邪恶。如果您正确指定它们,一切都应该没问题。
德博
它是模式。如果没有为用户帐户定义默认架构,SQL Server 将假定 dbo 是默认架构。
根据MSDN
SQL Server 2005 引入了数据库模式的概念以及数据库对象与用户所有权之间的分离。数据库用户拥有的对象不再与该用户绑定。该对象现在属于一个模式——一个可以容纳许多数据库对象的容器。架构所有者可能拥有一个或多个架构。这个概念创造了在数据库中公开数据库对象以供使用的机会,同时保护它们不被修改、使用不良查询技术直接访问或被所有者以外的用户删除。
要创建自己的 Schema,可以使用以下脚本:
CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]
您可以使用它们对表进行逻辑分组,例如为“财务”信息创建一个 schama,为“个人”数据创建另一个。然后,您的表格将显示为:
金融.Foo
个人.Foo