一个很基础的SQL查询语句
SELECT*FROM[master].[dbo].[spt_monitor]为什么字段间要加[],我记得原来自己学过MSSQL,当时这样写就通过了:SELECT*FRO...
SELECT * FROM [master].[dbo].[spt_monitor]
为什么字段间要加[ ],我记得原来自己学过MS SQL,当时这样写就通过了:
SELECT * FROM spt_monitor。请高手解答? 展开
为什么字段间要加[ ],我记得原来自己学过MS SQL,当时这样写就通过了:
SELECT * FROM spt_monitor。请高手解答? 展开
2个回答
展开全部
这个是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,所以会报错,找不到表。
方括号在此处并不是必须的,方括号一般是用来括用户表中涉及的数据库的保留字的。比如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,所以会报错,找不到表。
展开全部
方括号在此处并不是必须的,使用不同开发环境,自动生成的SQL时就可能带[]。如:有的开发工具自动生成SQL Server数据库的SQL时就不带[],自动生成access数据库的SQL就带[]。
SELECT * FROM [master].[dbo].[spt_monitor]
说明表[spt_monitor]来源于数据库 [master],以与其它数据库中的同名表[spt_monitor]区分。当你同时操作多个数据库,且不同的数据库中可能有同名表。
SELECT * FROM [master].[dbo].[spt_monitor] 更加标准。
SELECT * FROM [master].[dbo].[spt_monitor]
说明表[spt_monitor]来源于数据库 [master],以与其它数据库中的同名表[spt_monitor]区分。当你同时操作多个数据库,且不同的数据库中可能有同名表。
SELECT * FROM [master].[dbo].[spt_monitor] 更加标准。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询