SQL Server 保留关键字
Microsoft® SQL Server™ 2000 使用保留关键字定义、操作和访问数据库。保留关键字是 SQL Server 使用的 Transact-SQL 语言语法的一部分,用于分析和理解 Transact-SQL 语句和批处理。尽管在 Transact-SQL 脚本中,使用 SQL Server 保留关键字作为标识符和对象名在语法上是可行的,但规定只能使用分隔标识符。
下表列出了 SQL Server 的保留关键字。
ADD
EXCEPT
PERCENT
ALL
EXEC
PLAN
ALTER
EXECUTE
PRECISION
AND
EXISTS
PRIMARY
ANY
EXIT
AS
FETCH
PROC
ASC
FILE
PROCEDURE
AUTHORIZATION
FILLFACTOR
PUBLIC
BACKUP
FOR
RAISERROR
BEGIN
FOREIGN
READ
BETWEEN
FREETEXT
READTEXT
BREAK
FREETEXTTABLE
RECONFIGURE
BROWSE
FROM
REFERENCES
BULK
FULL
REPLICATION
BY
FUNCTION
RESTORE
CASCADE
GOTO
RESTRICT
CASE
GRANT
RETURN
CHECK
GROUP
REVOKE
CHECKPOINT
HAVING
RIGHT
CLOSE
HOLDLOCK
ROLLBACK
CLUSTERED
IDENTITY
ROWCOUNT
COALESCE
IDENTITY_INSERT
ROWGUIDCOL
COLLATE
IDENTITYCOL
RULE
COLUMN
IF
SAVE
COMMIT
IN
SCHEMA
COMPUTE
INDEX
SELECT
CONSTRAINT
INNER
SESSION_USER
CONTAINS
INSERT
SET
CONTAINSTABLE
INTERSECT
SETUSER
CONTINUE
INTO
SHUTDOWN
CONVERT
IS
SOME
CREATE
JOIN
STATISTICS
CROSS
KEY
SYSTEM_USER
CURRENT
KILL
TABLE
CURRENT_DATE
LEFT
TEXTSIZE
CURRENT_TIME
LIKE
THEN
CURRENT_TIMESTAMP
LINENO
TO
CURRENT_USER
LOAD
TOP
CURSOR
NATIONAL
TRAN
DATABASE
NOCHECK
TRANSACTION
DBCC
NONCLUSTERED
TRIGGER
DEALLOCATE
NOT
TRUNCATE
DECLARE
NULL
TSEQUAL
DEFAULT
NULLIF
UNION
DELETE
OF
UNIQUE
DENY
OFF
UPDATE
DESC
OFFSETS
UPDATETEXT
DISK
ON
USE
DISTINCT
OPEN
USER
DISTRIBUTED
OPENDATASOURCE
VALUES
DOUBLE
OPENQUERY
VARYING
DROP
OPENROWSET
VIEW
DUMMY
OPENXML
WAITFOR
DUMP
OPTION
WHEN
ELSE
OR
WHERE
END
ORDER
WHILE
ERRLVL
OUTER
WITH
ESCAPE
OVER
WRITETEXT
另外,SQL-92 标准还定义了保留关键字列表。不要使用 SQL-92 保留关键字作为对象名和标识符。ODBC 保留关键字列表(如下所示)与 SQL-92 保留关键字列表相同。
说明 SQL-92 保留关键字列表有时可能比 SQL Server 限制更多,有时则限制更少。例如,SQL-92 保留关键字列表包含 INT,而 SQL Server 不需要将其区分为保留关键字。
Transact-SQL 保留关键字可用作数据库或数据库对象(如表、列、视图等)的标识符或名称。使用被引用的标识符或分隔标识符。对将保留关键字用作变量和存储过程参数的名称没有限制。
ODBC 保留关键字
保留了下列关键字用于 ODBC 函数调用。这些关键字根本不约束 SQL 语法;然而,为确保与支持核心 SQL 语法的驱动程序兼容,应用程序应避免使用这些关键字。
下面是当前的 ODBC 保留关键字列表。有关更多信息,请参见《Microsoft ODBC 3.0 程序员参考》,第 2 卷,附录 C。
ABSOLUTE
EXEC
OVERLAPS
ACTION
EXECUTE
PAD
ADA
EXISTS
PARTIAL
ADD
EXTERNAL
PASCAL
ALL
EXTRACT
POSITION
ALLOCATE
FALSE
PRECISION
ALTER
FETCH
PREPARE
AND
FIRST
PRESERVE
ANY
FLOAT
PRIMARY
ARE
FOR
PRIOR
AS
FOREIGN
PRIVILEGES
ASC
FORTRAN
PROCEDURE
ASSERTION
FOUND
PUBLIC
AT
FROM
READ
AUTHORIZATION
FULL
REAL
AVG
GET
REFERENCES
BEGIN
GLOBAL
RELATIVE
BETWEEN
GO
RESTRICT
BIT
GOTO
REVOKE
BIT_LENGTH
GRANT
RIGHT
BOTH
GROUP
ROLLBACK
BY
HAVING
ROWS
CASCADE
HOUR
SCHEMA
CASCADED
IDENTITY
SCROLL
CASE
IMMEDIATE
SECOND
CAST
IN
SECTION
CATALOG
INCLUDE
SELECT
CHAR
INDEX
SESSION
CHAR_LENGTH
INDICATOR
SESSION_USER
CHARACTER
INITIALLY
SET
CHARACTER_LENGTH
INNER
SIZE
CHECK
INPUT
SMALLINT
CLOSE
INSENSITIVE
SOME
COALESCE
INSERT
SPACE
COLLATE
INT
SQL
COLLATION
INTEGER
SQLCA
COLUMN
INTERSECT
SQLCODE
COMMIT
INTERVAL
SQLERROR
CONNECT
INTO
SQLSTATE
CONNECTION
IS
SQLWARNING
CONSTRAINT
ISOLATION
SUBSTRING
CONSTRAINTS
JOIN
SUM
CONTINUE
KEY
SYSTEM_USER
CONVERT
LANGUAGE
TABLE
CORRESPONDING
LAST
TEMPORARY
COUNT
LEADING
THEN
CREATE
LEFT
TIME
CROSS
LEVEL
TIMESTAMP
CURRENT
LIKE
TIMEZONE_HOUR
CURRENT_DATE
LOCAL
TIMEZONE_MINUTE
CURRENT_TIME
LOWER
TO
CURRENT_TIMESTAMP
MATCH
TRAILING
CURRENT_USER
MAX
TRANSACTION
CURSOR
MIN
TRANSLATE
DATE
MINUTE
TRANSLATION
DAY
MODULE
TRIM
DEALLOCATE
MONTH
TRUE
DEC
NAMES
UNION
DECIMAL
NATIONAL
UNIQUE
DECLARE
NATURAL
UNKNOWN
DEFAULT
NCHAR
UPDATE
DEFERRABLE
NEXT
UPPER
DEFERRED
NO
USAGE
DELETE
NONE
USER
DESC
NOT
USING
DESCRIBE
NULL
VALUE
DESCRIPTOR
NULLIF
VALUES
DIAGNOSTICS
NUMERIC
VARCHAR
DISCONNECT
OCTET_LENGTH
VARYING
DISTINCT
OF
VIEW
DOMAIN
ON
WHEN
DOUBLE
ONLY
WHENEVER
DROP
OPEN
WHERE
ELSE
OPTION
WITH
END
OR
WORK
END-EXEC
ORDER
WRITE
ESCAPE
OUTER
YEAR
EXCEPT
OUTPUT
ZONE
EXCEPTION
将来的关键字
以下关键字可能会保留在将来的 SQL Server 版本中,作为将来要实现的新特性。注意,不要使用这些关键字作为标识符。
ABSOLUTE
FOUND
PRESERVE
ACTION
FREE
PRIOR
ADMIN
GENERAL
PRIVILEGES
AFTER
GET
READS
AGGREGATE
GLOBAL
REAL
ALIAS
GO
RECURSIVE
ALLOCATE
GROUPING
REF
ARE
HOST
REFERENCING
ARRAY
HOUR
RELATIVE
ASSERTION
IGNORE
RESULT
AT
IMMEDIATE
RETURNS
BEFORE
INDICATOR
ROLE
BINARY
INITIALIZE
ROLLUP
BIT
INITIALLY
ROUTINE
BLOB
INOUT
ROW
BOOLEAN
INPUT
ROWS
BOTH
INT
SAVEPOINT
BREADTH
INTEGER
SCROLL
CALL
INTERVAL
SCOPE
CASCADED
ISOLATION
SEARCH
CAST
ITERATE
SECOND
CATALOG
LANGUAGE
SECTION
CHAR
LARGE
SEQUENCE
CHARACTER
LAST
SESSION
CLASS
LATERAL
SETS
CLOB
LEADING
SIZE
COLLATION
LESS
SMALLINT
COMPLETION
LEVEL
SPACE
CONNECT
LIMIT
SPECIFIC
CONNECTION
LOCAL
SPECIFICTYPE
CONSTRAINTS
LOCALTIME
SQL
CONSTRUCTOR
LOCALTIMESTAMP
SQLEXCEPTION
CORRESPONDING
LOCATOR
SQLSTATE
CUBE
MAP
SQLWARNING
CURRENT_PATH
MATCH
START
CURRENT_ROLE
MINUTE
STATE
CYCLE
MODIFIES
STATEMENT
DATA
MODIFY
STATIC
DATE
MODULE
STRUCTURE
DAY
MONTH
TEMPORARY
DEC
NAMES
TERMINATE
DECIMAL
NATURAL
THAN
DEFERRABLE
NCHAR
TIME
DEFERRED
NCLOB
TIMESTAMP
DEPTH
NEW
TIMEZONE_HOUR
DEREF
NEXT
TIMEZONE_MINUTE
DESCRIBE
NO
TRAILING
DESCRIPTOR
NONE
TRANSLATION
DESTROY
NUMERIC
TREAT
DESTRUCTOR
OBJECT
TRUE
DETERMINISTIC
OLD
UNDER
DICTIONARY
ONLY
UNKNOWN
DIAGNOSTICS
OPERATION
UNNEST
DISCONNECT
ORDINALITY
USAGE
DOMAIN
OUT
USING
DYNAMIC
OUTPUT
VALUE
EACH
PAD
VARCHAR
END-EXEC
PARAMETER
VARIABLE
EQUALS
PARAMETERS
WHENEVER
EVERY
PARTIAL
WITHOUT
EXCEPTION
PATH
WORK
EXTERNAL
POSTFIX
WRITE
FLASE
PREFIX
YEAR
FIRST
PREORDER
ZONE
FLOAT
PREPARE