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 函数调用。这些关键字根本不约束 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 |