Microsoft SQL Server 2005 使用保留关键字来定义、操作或访问数据库。保留关键字是 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
| PRINT
| 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-2003 标准还定义了保留关键字列表。不要使用 SQL-2003 保留关键字作为对象名和标识符。ODBC 保留关键字列表(如下表所示)与 SQL-2003 保留关键字列表相同。
注意:
| SQL-2003 保留关键字列表有时可能比 SQL Server 限制更多,有时则限制更少。例如,SQL-2003 保留关键字列表包含 INT,而 SQL Server 不需要将其区分为保留关键字。
|
Transact-SQL 保留关键字可用作数据库或数据库对象(如表、列、视图等)的标识符或名称。使用带引号的标识符或分隔标识符。不限制将保留关键字用作变量和存储过程参数的名称。有关详细信息,请参阅使用标识符作为对象名称。
ODBC 保留关键字
保留了下列关键字以用于 ODBC 函数调用。这些关键字根本不约束 SQL 语法;然而,为确保与支持核心 SQL 语法的驱动程序兼容,应用程序应避免使用这些关键字。
下面是当前的 ODBC 保留关键字列表。
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
| PREPARE
| ACTION
| FREE
| PRESERVE
| ADMIN
| FULLTEXTTABLE
| PRIOR
| AFTER
| GENERAL
| PRIVILEGES
| AGGREGATE
| GET
| READS
| ALIAS
| GLOBAL
| REAL
| ALLOCATE
| GO
| RECURSIVE
| ARE
| GROUPING
| REF
| ARRAY
| HOST
| REFERENCING
| ASSERTION
| HOUR
| RELATIVE
| AT
| IGNORE
| RESULT
| BEFORE
| IMMEDIATE
| RETURNS
| BINARY
| INDICATOR
| ROLE
| BIT
| INITIALIZE
| ROLLUP
| BLOB
| INITIALLY
| ROUTINE
| BOOLEAN
| INOUT
| ROW
| BOTH
| INPUT
| ROWS
| BREADTH
| INT
| SAVEPOINT
| CALL
| INTEGER
| SCROLL
| CASCADED
| INTERVAL
| SCOPE
| CAST
| ISOLATION
| SEARCH
| CATALOG
| ITERATE
| SECOND
| CHAR
| LANGUAGE
| SECTION
| CHARACTER
| LARGE
| SEQUENCE
| CLASS
| LAST
| SESSION
| CLOB
| LATERAL
| SETS
| COLLATION
| LEADING
| SIZE
| COMPLETION
| LESS
| SMALLINT
| CONNECT
| LEVEL
| SPACE
| CONNECTION
| LIMIT
| SPECIFIC
| CONSTRAINTS
| LOCAL
| SPECIFICTYPE
| CONSTRUCTOR
| LOCALTIME
| SQL
| CORRESPONDING
| LOCALTIMESTAMP
| SQLEXCEPTION
| CUBE
| LOCATOR
| SQLSTATE
| CURRENT_PATH
| MAP
| SQLWARNING
| CURRENT_ROLE
| MATCH
| START
| CYCLE
| MINUTE
| STATE
| DATA
| MODIFIES
| STATEMENT
| DATE
| MODIFY
| STATIC
| DAY
| MODULE
| STRUCTURE
| DEC
| MONTH
| TEMPORARY
| DECIMAL
| NAMES
| TERMINATE
| DEFERRABLE
| NATURAL
| THAN
| DEFERRED
| NCHAR
| TIME
| DEPTH
| NCLOB
| TIMESTAMP
| DEREF
| NEW
| TIMEZONE_HOUR
| DESCRIBE
| NEXT
| TIMEZONE_MINUTE
| DESCRIPTOR
| NO
| TRAILING
| DESTROY
| NONE
| TRANSLATION
| DESTRUCTOR
| NUMERIC
| TREAT
| DETERMINISTIC
| OBJECT
| TRUE
| DICTIONARY
| OLD
| UNDER
| DIAGNOSTICS
| ONLY
| UNKNOWN
| DISCONNECT
| OPERATION
| UNNEST
| DOMAIN
| ORDINALITY
| USAGE
| DYNAMIC
| OUT
| USING
| EACH
| OUTPUT
| VALUE
| END-EXEC
| PAD
| VARCHAR
| EQUALS
| PARAMETER
| VARIABLE
| EVERY
| PARAMETERS
| WHENEVER
| EXCEPTION
| PARTIAL
| WITHOUT
| EXTERNAL
| PATH
| WORK
| FALSE
| POSTFIX
| WRITE
| FIRST
| PREFIX
| YEAR
| FLOAT
| PREORDER
| ZONE
|
|