SQL Server 2005、2008“架构”

作者:vkvi 来源:ITPOW(原创) 日期:2012-3-27

在 SQL Server 2000 中,架构也就相当于用户,这个用户创建了这个表,当要删除这个用户时,必须先删除这个表。

从 SQL Server 2005 开始,架构就变了。架构真正和用户脱离开了,架构相当于一个容器,在里面可以放表、视图、函数、过程、队列、同义词、类型、XML 架构集合。

使用架构有什么优点呢?

一、就如前面说的,使得对象与用户脱离,不必在删除用户前删除用户创建的对象。

二、对架构设置用户权限,可以避免对一个一个的对象设置权限那么麻烦。

三、架构就像编程中的命名空间(只是架构名不能嵌套),使得业务逻辑更合理。

架构的一些规则

  • 一个数据库可以有多个架构;
  • 一个架构可以有多个对象,但一个对象只能属于一个架构;
  • 同一架构中的对象名称不能相同,但相同名称的对象可以存在于不同的架构中;
  • 一个用户可以不拥有架构,也可以拥有多个架构;但一个架构只能有一个所有者,所有者可以是用户, 数据库角色, 应用程序角色。
  • 架构所有权可以转移。
  • 多个用户可以使用同一默认架构。

为什么我们的 SQL 语句没有使用架构?

比如 select * from cftea,为什么不是 select * from dbo.cftea?

这是由于我们的用户有默认架构 dbo 的原因,如果我们的用户默认架构不是 dbo,或者 cftea 的架构不是 dbo,则 SQL 语句中必须指定架构名。

最完整对象引用:[DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject]

相关文章