修改SqlServer中对象架构(表架构)示例

首先了解一下在数据库中什么是架构(Schema),按照微软的说法"数据库架构是一个独立于数据库用户的非重复命名空间,您可以将架构视为对象的容 器",具体说明可以参考:http://technet.microsoft.com/zh-cn/library/ms190387.aspx。其实对 于我们搞C#的来说很好理解。架构就像C#中的命名空间,每一个类只能处在一个命名空间,不能即属于A命名空间又属于B命名空间。但数据库架构与命名空间 有点不同的是,命名空间可以属于另一个命名空间下,而架构不行。

即然在数据库中有架构这个概念,那么我们在访问表的时候,严格来说,应该都需要加上架构名,例如sql语句:

select * from 表名


严格来说,应该是

select * from 架构名.表名


那为什么我们没有加架构名也能访问到表呢?这是因为有默认架构名的原因,如果我们没有给对象加架构名,那么数据库就会使用默认架构名,一般默认架构名为dbo。

回到正题,我们要如何修改对象的架构名呢?可以使用系统存储过程sp_changeobjectowner
sp_changeobjectowner说明如下:
作用:更改当前数据库中对象的所有者
语法:

sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

 
示例:
比如要修改dbo.table1的架构为newschema,sql语句如下:

sp_changeobjectowner 'dbo.table1','newschema'
 
原文地址:
http://www.lmwlove.com/ac/ID764
posted @ 2013-02-20 09:24  左立军  阅读(385)  评论(0编辑  收藏  举报