我一直在发现SQL Server架构很混乱。也许你们可以帮我澄清一些混乱。我正在使用SQL Server 2008 Express和MS SQL Server 2008 Management Studio,但我认为我的问题与任何MS SQL Server 2008版本都有关。我一直在不同的服务器上试验不同的数据库和不同的SQL Server实例。例如,我一直在我们的公司服务器上做一些工作,但我也在我的共享网络托管服务器上使用了一些数据库。这可能是我进入一些混乱的原因的一部分。以dbo架构命名的SQL Server表格
1)这个模式名称是从哪里来的?几个星期前,当我第一次开始搞乱SQL Server时,我想我没有看到任何附加到表名称的模式名称。当我导入数据库或使用MS Access迁移助理时,我开始看到它们。是否有可能根本不使用模式?它们在某些情况下不显示吗?
2)架构名称不是“dbo”?在最近的项目中,我的模式已经显示为MyLongUserName.tablename而不是dbo.tablename。我很困惑,为什么有时用户帐户似乎默认为dbo模式,而有时候它被分配给与用户帐户同名的模式。这与使用NT身份验证与SQL Server身份验证登录有什么关系?
3)用户名为dbo?我不记得在我目前正在使用的数据库中创建名为dbo的用户,但我在用户列表中看到它。用户账户“dbo”必须存在于模式“dbo”中吗?用户名和模式名称是否总是平行的?
4)使用模式与否 - 你不能使用它们吗?您是否将基础网站的小型项目(如两个或三个表格数据库)使用模式?你能避免完全使用模式还是只使用默认的“dbo”模式?即使在非常小的项目中,您是否会创建其他架构并为其分配特定的权限和用户帐户?
我一直在使用这本书Murach的SQL Server 2008开发人员,我还没有发现它在过度帮助我清除我的困惑。我正在阅读的句子如下:“如果在创建对象时未指定模式,则它们将存储在默认模式中。”等等,我怎么知道“默认模式”是什么?我们是在谈论用户帐户的默认模式,还是每个数据库都有“默认模式”?它总是“dbo”吗?为什么当我创建对象时,是将它们分配给模式MyLongUserName而不是“dbo”?