在本地或专用服务器上,当我创建一个表时,我会看到表名如下:
dbo.Foo当我从plesk环境中获得一个数据库帐户时,创建的表获得了名称:
mydbuser.Foo前缀对我的代码有什么影响?或者,如果我从备份中创建了一个表/还原表,我应该期望得到奇怪的结果吗?
发布于 2013-07-24 12:43:08
dbo是在创建表而不显式分配架构时分配给表的默认架构。数据库模式是对对象(如表、视图、存储过程等)进行逻辑分组的一种方法。您可以阅读更多有关模式( 这里 )的信息。
前缀对我的代码有什么影响?
如果您没有在代码中指定模式,那么它将以dbo为缺省值。尽管如果您有一个包含dbo以外的模式的表,那么您也必须在代码中指定,否则它将不会执行。
如果我从备份中创建了一个表/还原表,我是否应该期望得到奇怪的结果?
模式不是邪恶的。如果您正确地指定了它们,那么一切都应该是好的。
发布于 2013-07-24 12:51:11
dbo
这是模式。如果未为用户帐户定义默认架构,则Server将假定dbo是默认架构。
根据MSDN
Server 2005引入了数据库模式的概念,以及数据库对象与用户所有权之间的分离。数据库用户拥有的对象不再绑定到该用户。该对象现在属于架构--一个可以容纳许多数据库对象的容器。架构所有者可能拥有一个或多个架构。这个概念创造了在数据库中公开数据库对象以供使用的机会,同时保护它们不受修改、使用糟糕的查询技术的直接访问或所有者以外的用户的删除。
要创建自己的架构,可以使用以下脚本:
CREATE SCHEMA [EnterSchemaNameHere] AUTHORIZATION [dbo]您可以使用它们对表进行逻辑分组,例如,为“金融”信息创建一个schama,为“个人”数据创建另一个。然后,您的表将显示为:
Financial.Foo
Personal.Foo
https://stackoverflow.com/questions/17834311
复制相似问题