在SQL里两个点“..”的用法?

crecrecre 2009-08-18 11:51:23
一种是在一个数据里访问另一个数据库时,用两个点。
还一种,现在想不起来怎么用了,想问一下。好像是可以将什么东西给省略的意思。
...全文
1190 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongruixing 2010-09-09
  • 打赏
  • 举报
回复
又在csdn学习到了新东西
adandelion 2009-09-15
  • 打赏
  • 举报
回复
lou zhu bu hou dao
蔡袅 2009-08-24
  • 打赏
  • 举报
回复 1
一般教材习惯是
Use 数据库 再写SQL语句
其实 再SQL语句里可以直接用LZ的.. 就等价于 Use 数据库
比如:
select * from Northwind..Orders
等价于:
use Northwind
select * from Orders
crecrecre 2009-08-24
  • 打赏
  • 举报
回复
wait
linguojin11 2009-08-22
  • 打赏
  • 举报
回复
服务器.数据库.所有者.对象名
这个感觉跟链接服务器时的使用方法类似
新丁11111 2009-08-22
  • 打赏
  • 举报
回复
应该跨数据库访问表的简易写法
claro 2009-08-21
  • 打赏
  • 举报
回复
..
End 2009-08-21
  • 打赏
  • 举报
回复
学习到了
crecrecre 2009-08-21
  • 打赏
  • 举报
回复
..的另一种用法还是想知道
crecrecre 2009-08-20
  • 打赏
  • 举报
回复
现在为什么不让帖子置前了?
xuejie09242 2009-08-20
  • 打赏
  • 举报
回复
上面,要设置数据库用户的默认架构是A才行的
xuejie09242 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 haiwer 的回复:]
dbname..tablename  === dbname.dbo.tbname
[/Quote]

这种说法在大多数情况下是正确的。但当数据库有多个用户,每个用户默认架构不同时,就不一定是dbo了,如:
MSSQL上创建一个登录A,然后在数据库DB1上建立一个用户,引用这个登录,再创建一个架构 A ,
创建表tb
再设置登录A访问数据库DB2的权限

以A登录服务器,设置当前数据库为DB2,查询select * from DB2..tb
是可以的,但select * from DB2.dbo.tb 由会出现错误

所以,应该是当前登录在数据库中的默认架构才对
这是在SQL2008上 试验通过了。架构应该是05或08增加的概念。2000下,应该是默认当前用户,如果用户不是dbo,那么省略的也就不是dbo了。有兴趣的可以试一下2000下的情况。
Ray_Zhang 2009-08-20
  • 打赏
  • 举报
回复
省略当前表或View或SP的所属账户(即谁创建的)如果不是特别设置的用户建立一般会是dbo就是database owner,所以在调用或查看表,view和Sp,SQL 会在第一层语法检查后根据这个判断权限,比如一个只有当前库读写权限的用户aa建立了一张表t,那么就会显示成aa.t(当然这个只是在2005以后的版本可以看到,2000里会显示t,如果dbo的账户也创建个同名表是允许的。在2000你会看到两个名称叫t的表)
如果另一个用户他就要开aa.t这个表就必须写全否则会显示另一张表即dbo.t
当然如果对权限控制没有怎么严的话有没有上面类似的情况存在,直接省略是可以的,就是楼上面说的偷懒的方法。
feixianxxx 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 crecrecre 的回复:]
等待
[/Quote]
你哪里看来的。。
印象中式没的
crecrecre 2009-08-19
  • 打赏
  • 举报
回复
等待
crecrecre 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 crecrecre 的回复:]
大家说的都是第一种用法,还有一种?只是现在想不起来了。
在原来的SQL7上见有这种用法,当时没在意,现在就是想不起来。
[/Quote]

等待
taozhi_yaoyao 2009-08-19
  • 打赏
  • 举报
回复
呵呵偷懒的方法
宸路 2009-08-18
  • 打赏
  • 举报
回复
学习。原来还可以这样写
guguda2008 2009-08-18
  • 打赏
  • 举报
回复
..中间就是所有者的名字
SQL77 2009-08-18
  • 打赏
  • 举报
回复
select * from db..tb等价于select * from db.dbo.tb

指定

服务器.数据库.所有者.对象名
加载更多回复(15)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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