sql-server – 使用dbo Schema命名的SQL Server表

前端之家收集整理的这篇文章主要介绍了sql-server – 使用dbo Schema命名的SQL Server表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在发现sql Server模式非常混乱.也许你们可以帮助我清除一些混乱.我正在使用sql Server 2008 Express和MS sql Server 2008 Management Studio,但我认为我的问题与任何MS sql Server 2008版本相关.我一直在不同的服务器上尝试使用不同的数据库和不同的sql Server实例.例如,我已经在我们的公司服务器上做了一些工作,但是我也在我的共享网络托管服务器上的一些数据库中工作了很多.这可能是我进入一些混乱的原因的一部分.

1)这个模式名称来自哪里?我以为当我几个星期前开始搞乱sql Server时,我没有看到任何模式名称附加到表名.导入数据库或使用MS Access Migration Assistant时,我开始看到它们.是否可以不使用模式?在某些情况下他们不会出现吗?

2)模式名称不是“dbo”?在最近的项目中,我的模式已经显示为MyLongUserName.tablename而不是dbo.tablename.我很困惑,为什么有时候用户帐户似乎默认为dbo模式,其他时候它被分配到与用户帐户名称相同的模式.这是否与使用NT身份验证与sql Server身份验证进行登录有关?

3)用户名为dbo?我不记得在我正在工作的数据库中创建一个名为dbo的用户​​,但是我在用户列表中看到它.是否存在“dbo”模式的用户帐户“dbo”?用户名和模式名称总是平行吗?

4)使用模式或不使用 – 你不能使用它们吗?您是否为小型项目使用模式,例如基本网站的两个或三个表数据库?你可以避免完全使用模式,还是仅仅使用默认的“dbo”模式?您是否可以创建其他架构并为其分配特定权限和用户帐户,即使在非常小的项目中?

我一直在使用这本书Murach的sql Server 2008 for Developers,我没有发现它对清除我的困惑非常有帮助.我正在阅读如下所示的句子:“如果在创建对象时不指定模式,则将它们存储在默认模式中.等等,我怎么知道什么是“默认模式”?我们在谈论用户帐户的默认模式,还是每个数据库都有“默认模式”?它总是“dbo”吗?为什么我创建对象是将它们分配给模式MyLongUserName而不是“dbo”?

解决方法

你可能想从阅读这里开始: What good are SQL Server schemas?

sql Server 2005起,模式与用户http://msdn.microsoft.com/en-us/library/ms190387.aspx分离.

在此之前,每个用户拥有几个表,它们将在它们的“空格”中.那个“空间”现在是一个模式,它是一种分组表的方式.

sql Server对象的名称有4个部分

> server.database.schema.objectname

每当你省略一个或多个,你从右边命名它

> database.schema.objectname – 隐含的当前服务器
> schema.objectname – 隐含的当前数据库
> objectname – 隐含的默认模式.每个用户可以被分配一个默认模式,但默认情况下这将是“dbo”

“dbo”是一个特殊的模式,它是数据库所有者.它存在于每个数据库中,但您可以将模式(如文件夹)添加数据库

如果从旧版安装的sql Server 2000 dbs迁移到2005或更高版本,那么您可以将用户名称作为用户带入,因为用户“拥有”表.

猜你在找的MsSQL相关文章