dbname..tablename === dbname.dbo.tbname

来源:互联网 发布:aws s3 上传文件 php 编辑:程序博客网 时间:2024/06/05 17:07

select * from db..tb  =>   select * from db.dbo.tb


select * from db..tb等价于select * from db.dbo.tb


一般教材习惯是 
Use  数据库   再写SQL语句
其实 再SQL语句里可以直接用LZ的.. 就等价于 Use 数据库
比如:
select * from Northwind..Orders
等价于: 
use Northwind
select * from Orders


服务器.数据库.所有者.对象名 
这个感觉跟链接服务器时的使用方法类似


省略当前表或View或SP的所属账户(即谁创建的)如果不是特别设置的用户建立一般会是dbo就是database owner,所以在调用或查看表,view和Sp,SQL 会在第一层语法检查后根据这个判断权限,比如一个只有当前库读写权限的用户aa建立了一张表t,那么就会显示成aa.t(当然这个只是在2005以后的版本可以看到,2000里会显示t,如果dbo的账户也创建个同名表是允许的。在2000你会看到两个名称叫t的表)
如果另一个用户他就要开aa.t这个表就必须写全否则会显示另一张表即dbo.t
当然如果对权限控制没有怎么严的话有没有上面类似的情况存在,直接省略是可以的,就是楼上面说的偷懒的方法。




0 0
原创粉丝点击