SQL Server 2005 模式

如果大家使用过Oracle或者其他的数据库,可能已经对模式比较熟悉.模式其实就是一种对象的容器,使用模式可以让复杂的数据库易于管理.在SQL SERVER 2000,是使用Owner作为对象的前缀的,也就是每一个DB的用户就相当于一个模式,这样就把用户和模式的概念混淆了.2005里边,用户可以授予一个默认的模式,用户也可以被授予访问其他模式的权限.使用了SQL SEVER 2005后,发现我们在使用模式的时候需要注意一下几个问题.

1.要访问的对象在默认的模式里边对象名前不用加模式的名称.

Fred用户的默认模式是Production,而表Products也在模式Production中.

select * from Products就相当于select * from Production.Products

2.要访问的对象不在默认的模式对象里边,但是在DBO模式里边,对象名之前也不用加模式的名称.

Fred用户的默认模式是Production,而表Products在DBO模式里边.

select * from Products时候,首先会使用select * from Production.Products来查询,如果找不到,就会使用select * from dbo.Products来查询,这样也会执行成功.

由于要进行二次解析,所以效率上考虑.对象名之前一定要加上确实的模式名称比较好.

这种匹配可能只是SQL SERVER 2005里边所特有的,允许这样的功能也是为了和SQL SERVER 2000兼容.

 

如果要访问的对象既不在用户的默认模式里边,也不在dbo模式里边,则一定要加上模式名称,否则会出错.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值