下面这此词都是T-SQL语句中的关键字,在写SQL语句,存储过程,触发器或字段命名等时要避免使用这些词。
ADD
|
EXIT
|
PRIMARY
|
ALL
|
FETCH
|
PRINT
|
ALTER
|
FILE
|
PRIVILEGES
|
AND
|
FILLFACTOR
|
PROC
|
ANY
|
FLOPPY
|
PROCEDURE
|
AS
|
FOR
|
PROCESSEXIT
|
ASC
|
FOREIGN
|
PUBLIC
|
AUTHORIZATION
|
FREETEXT
|
RAISERROR
|
AVG
|
FREETEXTTABLE
|
READ
|
BACKUP
|
FROM
|
READTEXT
|
BEGIN
|
FULL
|
RECONFIGURE
|
BETWEEN
|
GOTO
|
REFERENCES
|
BREAK
|
GRANT
|
REPEATABLE
|
BROWSE
|
GROUP
|
REPLICATION
|
BULK
|
HAVING
|
RESTORE
|
BY
|
HOLDLOCK
|
RESTRICT
|
CASCADE
|
IDENTITY
|
RETURN
|
CASE
|
IDENTITY_INSERT
|
REVOKE
|
CHECK
|
IDENTITYCOL
|
RIGHT
|
CHECKPOINT
|
IF
|
ROLLBACK
|
CLOSE
|
IN
|
ROWCOUNT
|
CLUSTERED
|
INDEX
|
ROWGUIDCOL
|
COALESCE
|
INNER
|
RULE
|
COLUMN
|
INSERT
|
SAVE
|
COMMIT
|
INTERSECT
|
SCHEMA
|
COMMITTED
|
INTO
|
SELECT
|
COMPUTE
|
IS
|
SERIALIZABLE
|
CONFIRM
|
ISOLATION
|
SESSION_USER
|
CONSTRAINT
|
JOIN
|
SET
|
CONTAINS
|
KEY
|
SETUSER
|
CONTAINSTABLE
|
KILL
|
SHUTDOWN
|
CONTINUE
|
LEFT
|
SOME
|
CONTROLROW
|
LEVEL
|
STATISTICS
|
CONVERT
|
LIKE
|
SUM
|
COUNT
|
LINENO
|
SYSTEM_USER
|
CREATE
|
LOAD
|
TABLE
|
CROSS
|
MAX
|
TAPE
|
CURRENT
|
MIN
|
TEMP
|
CURRENT_DATE
|
MIRROREXIT
|
TEMPORARY
|
CURRENT_TIME
|
NATIONAL
|
TEXTSIZE
|
CURRENT_TIMESTAMP
|
NOCHECK
|
THEN
|
CURRENT_USER
|
NONCLUSTERED
|
TO
|
CURSOR
|
NOT
|
TOP
|
DATABASE
|
NULL
|
TRAN
|
DBCC
|
NULLIF
|
TRANSACTION
|
DEALLOCATE
|
OF
|
TRIGGER
|
DECLARE
|
OFF
|
TRUNCATE
|
DEFAULT
|
OFFSETS
|
TSEQUAL
|
DELETE
|
ON
|
UNCOMMITTED
|
DENY
|
ONCE
|
UNION
|
DESC
|
ONLY
|
UNIQUE
|
DISK
|
OPEN
|
UPDATE
|
DISTINCT
|
OPENDATASOURCE
|
UPDATETEXT
|
DISTRIBUTED
|
OPENQUERY
|
USE
|
DOUBLE
|
OPENROWSET
|
USER
|
DROP
|
OPTION
|
VALUES
|
DUMMY
|
OR
|
VARYING
|
DUMP
|
ORDER
|
VIEW
|
ELSE
|
OUTER
|
WAITFOR
|
END
|
OVER
|
WHEN
|
ERRLVL
|
PERCENT
|
WHERE
|
ERROREXIT
|
PERM
|
WHILE
|
ESCAPE
|
PERMANENT
|
WITH
|
EXCEPT
|
PIPE
|
WORK
|
EXEC
|
PLAN
|
WRITETEXT
|
EXECUTE
|
PRECISION
|
|
EXISTS
|
PREPARE
|
但发果不经意用到一些关键字 尤其是像user、 work 等等,所以在碰到上面的 错误提示信息后 就要联想到这些,不妨试着 添加 [ ],问题就迎刃而解了。 如果担心出现这类问题 可以提前将需查询的所有表名都添加 [ ]。
在学校的时候写java程序,就遇到了这个问题,本来以为是数据库安装时候出错了,今天重新安装,仍然出现这个问题,百度了一下,才发现是一个很弱智的问题。服务器: 消息
156
,级别 15,状态 1,行 1在
关键字
user
附近
有
语法错误
。原来
user
是
SQL
的
关键字
。因此在
SQL
中不能将表名取为
user
。否则就会报上述的错误。假
数据库建立了一张
user
用户表,在前台使用
sql
语句对
user
表操作时总是报错,
user
附近
有
语法错误
,一开始以为是自己代码问题,可是检查了好多遍都没问题,后来百度了才发现:
原来“
User
”是
SQL
的
关键字
,而我自己创建的数据库中命名了一张名为“
user
”的表,当程序执行
SQL
语言时就会发生冲突。更改方法如下:
方式一:给
User
添加符号“[ ]”,用来区别
SQL
的保留
关键字
。
比如:select * from
user
where id = @id;
应改为:select * from [usser]
今天在给小苹果调错的时候,遇到了这样的一个问题。
关键字
“
user
”
附近
有
语法错误
。
我心想,这不是很简单嘛,肯定是敲错字目,于是找呀找,找了15分钟没找出来,感觉有点不对劲,于是上网一搜,真象大白啊。
之所以会报这个错误,是因为
user
属于
SQL
里的保留
关键字
,我们在给数据表起名字的时候一般不要用
SQL
里的保留
关键字
作为表名。当我们用保留
关键字
建表的话,程序执行
SQL
语言时就会发生冲突。
对这种...
util.JDBCExceptionReporter 77 )
SQL
Error:
156
,
SQL
State: S1000
(util.JDBCExceptionReporter 78 ) 在
关键字
'current_time'
附近
有
语法错误
。表格字段起名current_time
出现此错误是因为表格字段名和数据库的
关键字
相同,修改表字段名即可。记录备忘。