在 SQL Server 2000 中,架构也就相当于用户,这个用户创建了这个表,当要删除这个用户时,必须先删除这个表。
从 SQL Server 2005 开始,架构就变了。架构真正和用户脱离开了,架构相当于一个容器,在里面可以放表、视图、函数、过程、队列、同义词、类型、XML 架构集合。
使用架构有什么优点呢?
一、就如前面说的,使得对象与用户脱离,不必在删除用户前删除用户创建的对象。
二、对架构设置用户权限,可以避免对一个一个的对象设置权限那么麻烦。
三、架构就像编程中的命名空间(只是架构名不能嵌套),使得业务逻辑更合理。
架构的一些规则
为什么我们的 SQL 语句没有使用架构?
比如 select * from cftea,为什么不是 select * from dbo.cftea?
这是由于我们的用户有默认架构 dbo 的原因,如果我们的用户默认架构不是 dbo,或者 cftea 的架构不是 dbo,则 SQL 语句中必须指定架构名。
最完整对象引用:[DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject]