一个很基础的SQL查询语句

SELECT*FROM[master].[dbo].[spt_monitor]为什么字段间要加[],我记得原来自己学过MSSQL,当时这样写就通过了:SELECT*FRO... SELECT * FROM [master].[dbo].[spt_monitor]
为什么字段间要加[ ],我记得原来自己学过MS SQL,当时这样写就通过了:
SELECT * FROM spt_monitor。请高手解答?
展开
 我来答
hit_lubin
2011-07-31 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:1993万
展开全部
这个是SQLSERVER的查询
方括号在此处并不是必须的,方括号一般是用来括用户表中涉及的数据库的保留字的。比如USER, ID等等之类的SQLSERVER的保留字。因为数据库本身有这些关键字,而用户创建自己的表时,又创建了这些字段,使用的时候,就需要把用户表的这些名字的字段用方括号括起来,其他的时候不是必要的。
select * from master.dbo.spt_monitor
master表示数据库名,dbo是数据库用户,spt_monitor是用户下的表结构。
这个语句就是查询master库中,dbo用户下的spt_monitor表的数据。
而不使用前缀,select * from spt_monitor,对比上面,缺少了数据库的指定,缺少了用户名。
这就需要你当前执行连接的数据库是master库才可以,而且登陆的用户具备操作spt_monitor的权限。而上一个语句,指定了数据库,所以是可以跨库操作的。比如当前连接数据库为northwind数据库,第一个select * from master.dbo.spt_monitor因为指定了明确的数据库,所以不会报错,可是select * from spt_monitor,因为spt_monitor不属于库northwind,所以会报错,找不到表。
wzpsfather
2011-07-31 · TA获得超过559个赞
知道小有建树答主
回答量:765
采纳率:33%
帮助的人:378万
展开全部
方括号在此处并不是必须的,使用不同开发环境,自动生成的SQL时就可能带[]。如:有的开发工具自动生成SQL Server数据库的SQL时就不带[],自动生成access数据库的SQL就带[]。
SELECT * FROM [master].[dbo].[spt_monitor]
说明表[spt_monitor]来源于数据库 [master],以与其它数据库中的同名表[spt_monitor]区分。当你同时操作多个数据库,且不同的数据库中可能有同名表。
SELECT * FROM [master].[dbo].[spt_monitor] 更加标准。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式