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 – 隐含的当前服务器 “dbo”是一个特殊的模式,它是数据库所有者.它存在于每个数据库中,但您可以将模式(如文件夹)添加到数据库 如果从旧版安装的SQL Server 2000 dbs迁移到2005或更高版本,那么您可以将用户名称作为用户带入,因为用户“拥有”表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |