一个有关Schema的问题

zhang342468914 2010-09-15 05:41:27
首先声明本人是新手哈,问题如下:

最近使用微软 sql server 2005 提供的示例数据库,发现表的前缀名不一样,最后看了一哈表的属性才知道这个东西是

Schema,而我自己创建的表的前缀名全是dbo,以前创建表的时候也没有怎么关注这个,觉得可能是微软当初就这样设定的。

1.只知道Schema是表的一个框架,想具体知道哈究竟有是没用?

2.同一个数据库中怎样创建其他的 Schema 的表(除了dbo以外)?

3.可不可以将已经建好的表的Schema该为其他的Schema?

4.在一个数据库中创建不同Schema的好处?

问题有点多,分有点少.....希望高手给个正解,小弟先谢过了
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang342468914 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 obuntu 的回复:]
1.只知道Schema是表的一个框架,想具体知道哈究竟有是没用?

schema是相关对象的容器,引入schema是为了方便对象(如表、存储过程)等的管理,例如微软的Advernture库上就有dbo,sales,products等schema,这样可以让我们清晰的看到具体表的类别;
在2005以后,微软对schema和用户进行了分离,也就是说一个用户可以创建一个对象到不同的schema上。……
[/Quote]前面添加schema名好像不可以哈 你是不是搞错了哦
lcw321321 2010-09-15
  • 打赏
  • 举报
回复
1.个人认为主要是为了便于扩展和维护,对架构和用户的分离是SQL 2005的亮点之一.在授权便利来说,架构真的非常好
2。
CREATE SCHEMA [架构] AUTHORIZATION [所有者]
GO
ALTER USER [用户名] WITH DEFAULT_SCHEMA=[架构]
GO

3。可以
4。好处看第一点
obuntu 2010-09-15
  • 打赏
  • 举报
回复
1.只知道Schema是表的一个框架,想具体知道哈究竟有是没用?

schema是相关对象的容器,引入schema是为了方便对象(如表、存储过程)等的管理,例如微软的Advernture库上就有dbo,sales,products等schema,这样可以让我们清晰的看到具体表的类别;
在2005以后,微软对schema和用户进行了分离,也就是说一个用户可以创建一个对象到不同的schema上。
总的来说,引入schema是方便对象的管理

2.同一个数据库中怎样创建其他的 Schema 的表(除了dbo以外)?

前面添加schema名就可以了,前提是你有该schema的权限。

3.可不可以将已经建好的表的Schema该为其他的Schema?

不能直接修改架构名,需要通过alter schema transfer 进行schema间的转换;

4.在一个数据库中创建不同Schema的好处?

见第一点吧。

其他参考联机丛书。
billpu 2010-09-15
  • 打赏
  • 举报
回复
其实就是表格的所有人,不同的所有人(不是dbo)对不同的表格有不同的权限
比如你用a用户登录创建的表格就是a.tb
1 权限分配
2 你只能以你自己的身份创建表格
3 可以改,需要dbo权限,比如exec sp_changeobjectowner 'cqadmin.authors', 111 将表'cqadmin.authors'的所有者改为111
4 灵活权限
zhang342468914 2010-09-15
  • 打赏
  • 举报
回复
怎么没有人啊

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧