INSERT INTO [City] VALUES (1,'北京')
CREATE DATABASE [HRManager]
USE [HRManager]
等等这些
一些表名都有这个方括号?
究竟什么时候用什么时候不用呢?
谢谢
15 个解决方案
#1
列名或表名等。。。前后加有[],保证某些以外的发生。
如列名或表名为user时,就需要加上[]
如列名或表名为user时,就需要加上[]
#2
如果表名或列名 中间有空格,或者是关键字 就要用[ ] 括起来,不然就语法错误了!
#3
不用也可以啊。
Logs
[Logs]
均可
=============================================
但,对象名中间有空格的必须得用,如:
[Fuck Japanese Logs]
=============================================
Logs
[Logs]
均可
=============================================
但,对象名中间有空格的必须得用,如:
[Fuck Japanese Logs]
=============================================
#4
楼主有点意思啊,跑这儿散分来了?
#5
楼主,为什么是 31 分呢?
#6
我不是散分啊.哈哈.
这个问题我真的不知道.
那为啥不规定所有都加括号呢?一了百了.哈哈
这个问题我真的不知道.
那为啥不规定所有都加括号呢?一了百了.哈哈
#7
一般列名或表名为reserved word需要加[]
#8
31分.也没什么啊.
1总会比0好吧.
1总会比0好吧.
#9
那就接分吧
#10
好看,区别自己定的列名或函数名子和系统定义的冲突
如 use name 这类
如 use name 这类
#11
加[]或""用于定界列名或表名等信息,以区别一些特殊的不合命名规则的字串,或是与系统保留字有冲突。
在不同dbms中有不一样的限制。
如jetsql里,user为高级保留字,表名命名为user
select * from user
会报错。
t-sql user为保留字,但不是那么严格
select * from user没有问题。
又如,如果一个表名或列名命名为group
select * from group 就会报错。
又比如,定义了一个列,列名为 sql xml
select sql xml from tb
就会报错,因为 列名命名规则不允许空格。
这里,sql会以为你要从tb表里查,名为sql的列,并给别名 xml, 就会提示列sql不存在。
应该写为
select [sql xml] from tb
当然,同时一些特殊字符也一样。
当你不确定你的表名或列名是否会与SQL保留字冲突时,最好用[]或""定界。
#12
ANSI-SQL-92 标准就是这么制定的。
我国尚无发言权。
#13
(*^__^*)
#14
加[]或""用于定界列名或表名等信息,以区别一些特殊的不合命名规则的字串,或是与系统保留字有冲突。
#15
我只是路过,顺便回复,绝不接分。
给分的后果自负!
给分的后果自负!
#1
列名或表名等。。。前后加有[],保证某些以外的发生。
如列名或表名为user时,就需要加上[]
如列名或表名为user时,就需要加上[]
#2
如果表名或列名 中间有空格,或者是关键字 就要用[ ] 括起来,不然就语法错误了!
#3
不用也可以啊。
Logs
[Logs]
均可
=============================================
但,对象名中间有空格的必须得用,如:
[Fuck Japanese Logs]
=============================================
Logs
[Logs]
均可
=============================================
但,对象名中间有空格的必须得用,如:
[Fuck Japanese Logs]
=============================================
#4
楼主有点意思啊,跑这儿散分来了?
#5
楼主,为什么是 31 分呢?
#6
我不是散分啊.哈哈.
这个问题我真的不知道.
那为啥不规定所有都加括号呢?一了百了.哈哈
这个问题我真的不知道.
那为啥不规定所有都加括号呢?一了百了.哈哈
#7
一般列名或表名为reserved word需要加[]
#8
31分.也没什么啊.
1总会比0好吧.
1总会比0好吧.
#9
那就接分吧
#10
好看,区别自己定的列名或函数名子和系统定义的冲突
如 use name 这类
如 use name 这类
#11
加[]或""用于定界列名或表名等信息,以区别一些特殊的不合命名规则的字串,或是与系统保留字有冲突。
在不同dbms中有不一样的限制。
如jetsql里,user为高级保留字,表名命名为user
select * from user
会报错。
t-sql user为保留字,但不是那么严格
select * from user没有问题。
又如,如果一个表名或列名命名为group
select * from group 就会报错。
又比如,定义了一个列,列名为 sql xml
select sql xml from tb
就会报错,因为 列名命名规则不允许空格。
这里,sql会以为你要从tb表里查,名为sql的列,并给别名 xml, 就会提示列sql不存在。
应该写为
select [sql xml] from tb
当然,同时一些特殊字符也一样。
当你不确定你的表名或列名是否会与SQL保留字冲突时,最好用[]或""定界。
#12
ANSI-SQL-92 标准就是这么制定的。
我国尚无发言权。
#13
(*^__^*)
#14
加[]或""用于定界列名或表名等信息,以区别一些特殊的不合命名规则的字串,或是与系统保留字有冲突。
#15
我只是路过,顺便回复,绝不接分。
给分的后果自负!
给分的后果自负!