https://docs.microsoft.com/en-us/sql/t-sql/language-elements/reserved-keywords-transact-sql
Microsoft SQL Server 将保留关键字用于定义、操作和访问数据库。 保留关键字是 Transact-SQL 使用的 SQL Server 语言语法的一部分,用于分析和理解 Transact-SQL 语句和批处理。 尽管在 SQL Server 脚本中使用 Transact-SQL 保留关键字作为标识符和对象名在语法上是可行的,但规定只能使用分隔标识符。
下表列出了 SQL Server 和 Azure SQL 数据仓库保留关键字。
表 1
ADD | EXTERNAL | PROCEDURE |
ALL | FETCH | PUBLIC |
ALTER | FILE | RAISERROR |
和 | FILLFACTOR | READ |
ANY | FOR | READTEXT |
AS | FOREIGN | RECONFIGURE |
ASC | FREETEXT | REFERENCES |
AUTHORIZATION | FREETEXTTABLE | 复制 |
备份 | FROM | RESTORE |
BEGIN | FULL | RESTRICT |
BETWEEN | FUNCTION | RETURN |
BREAK | GOTO | REVERT |
BROWSE | GRANT | REVOKE |
BULK | GROUP | RIGHT |
BY | HAVING | ROLLBACK |
CASCADE | HOLDLOCK | ROWCOUNT |
CASE | IDENTITY | ROWGUIDCOL |
CHECK | IDENTITY_INSERT | RULE |
CHECKPOINT | IDENTITYCOL | SAVE |
CLOSE | IF | SCHEMA |
CLUSTERED | IN | SECURITYAUDIT |
COALESCE | INDEX | SELECT |
COLLATE | INNER | SEMANTICKEYPHRASETABLE |
COLUMN | INSERT | SEMANTICSIMILARITYDETAILSTABLE |
COMMIT | INTERSECT | SEMANTICSIMILARITYTABLE |
COMPUTE | INTO | SESSION_USER |
CONSTRAINT | IS | SET |
CONTAINS | JOIN | SETUSER |
CONTAINSTABLE | KEY | 关机 |
CONTINUE | KILL | SOME |
CONVERT | LEFT | STATISTICS |
CREATE | LIKE | SYSTEM_USER |
CROSS | LINENO | TABLE |
CURRENT | LOAD | TABLESAMPLE |
CURRENT_DATE | MERGE | TEXTSIZE |
CURRENT_TIME | NATIONAL | THEN |
CURRENT_TIMESTAMP | NOCHECK | TO |
CURRENT_USER | NONCLUSTERED | 返回页首 |
CURSOR | NOT | TRAN |
DATABASE | Null | TRANSACTION |
DBCC | NULLIF | TRIGGER |
DEALLOCATE | OF | TRUNCATE |
DECLARE | OFF | TRY_CONVERT |
DEFAULT | OFFSETS | TSEQUAL |
DELETE | ON | UNION |
DENY | OPEN | UNIQUE |
DESC | OPENDATASOURCE | UNPIVOT |
DISK | OPENQUERY | UPDATE |
DISTINCT | OPENROWSET | UPDATETEXT |
DISTRIBUTED | OPENXML | USE |
DOUBLE | OPTION | USER |
DROP | 或 | VALUES |
DUMP | ORDER | VARYING |
ELSE | OUTER | VIEW |
END | OVER | WAITFOR |
ERRLVL | PERCENT | WHEN |
ESCAPE | PIVOT | WHERE |
EXCEPT | PLAN | WHILE |
EXEC | PRECISION | WITH |
在运行 CREATE 语句前执行 | PRIMARY | WITHIN GROUP |
EXISTS | WRITETEXT | |
EXIT | PROC |
下表列出了 Azure SQL 数据仓库 专用的保留关键字。
表 2
LABEL |
此外,ISO 标准定义了保留关键字列表。 不要使用 ISO 保留关键字作为对象名和标识符。 ODBC 保留关键字列表(如下表所示)与 ISO 保留关键字列表相同。
备注
ISO 标准保留关键字有时可能比 SQL Server 限制更多,有时则更少。 例如,ISO 保留关键字列表包含 INT。 SQL Server 不必将此区分为保留关键字。
Transact-SQL 保留关键字可用作数据库或数据库对象(如表、列、视图等)的标识符或名称。 使用带引号的标识符或分隔标识符。 不限制将保留关键字用作变量和存储过程参数的名称。
ODBC 保留关键字
保留了下列关键字以用于 ODBC 函数调用。 这些关键字根本不约束 SQL 语法;然而,为确保与支持核心 SQL 语法的驱动程序兼容,应用程序应避免使用这些关键字。
下面是当前的 ODBC 保留关键字列表。
表 3
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 版本中保留使用,作为将来要实现的新功能。 注意,不要使用这些关键字作为标识符。
表 4
ABSOLUTE | HOST | RELATIVE |
ACTION | HOUR | RELEASE |
ADMIN | IGNORE | RESULT |
AFTER | IMMEDIATE | RETURNS |
AGGREGATE | INDICATOR | ROLE |
ALIAS | INITIALIZE | ROLLUP |
ALLOCATE | INITIALLY | ROUTINE |
ARE | INOUT | ROW |
ARRAY | INPUT | ROWS |
ASENSITIVE | INT | SAVEPOINT |
ASSERTION | INTEGER | SCROLL |
ASYMMETRIC | INTERSECTION | SCOPE |
AT | INTERVAL | SEARCH |
ATOMIC | ISOLATION | SECOND |
BEFORE | ITERATE | SECTION |
BINARY | LANGUAGE | SENSITIVE |
BIT | LARGE | SEQUENCE |
BLOB | LAST | SESSION |
BOOLEAN | LATERAL | SETS |
BOTH | LEADING | SIMILAR |
BREADTH | LESS | SIZE |
CALL | LEVEL | SMALLINT |
CALLED | LIKE_REGEX | SPACE |
CARDINALITY | LIMIT | SPECIFIC |
CASCADED | LN | SPECIFICTYPE |
CAST | LOCAL | SQL |
CATALOG | LOCALTIME | SQLEXCEPTION |
CHAR | LOCALTIMESTAMP | SQLSTATE |
CHARACTER | LOCATOR | SQLWARNING |
CLASS | MAP | START |
CLOB | MATCH | STATE |
COLLATION | MEMBER | STATEMENT |
COLLECT | METHOD | STATIC |
COMPLETION | MINUTE | STDDEV_POP |
CONDITION | MOD | STDDEV_SAMP |
CONNECT | MODIFIES | STRUCTURE |
CONNECTION | MODIFY | SUBMULTISET |
CONSTRAINTS | MODULE | SUBSTRING_REGEX |
CONSTRUCTOR | 月 | SYMMETRIC |
CORR | MULTISET | SYSTEM |
CORRESPONDING | NAMES | TEMPORARY |
COVAR_POP | NATURAL | TERMINATE |
COVAR_SAMP | NCHAR | THAN |
CUBE | NCLOB | TIME |
CUME_DIST | 新增功能 | TIMESTAMP |
CURRENT_CATALOG | NEXT | TIMEZONE_HOUR |
CURRENT_DEFAULT_TRANSFORM_GROUP | 是 | TIMEZONE_MINUTE |
CURRENT_PATH | 无 | TRAILING |
CURRENT_ROLE | NORMALIZE | TRANSLATE_REGEX |
CURRENT_SCHEMA | NUMERIC | TRANSLATION |
CURRENT_TRANSFORM_GROUP_FOR_TYPE | OBJECT | TREAT |
CYCLE | OCCURRENCES_REGEX | TRUE |
DATA | OLD | UESCAPE |
DATE | ONLY | UNDER |
DAY | OPERATION | UNKNOWN |
DEC | ORDINALITY | UNNEST |
DECIMAL | OUT | USAGE |
DEFERRABLE | OVERLAY | USING |
DEFERRED | OUTPUT | 值 |
DEPTH | PAD | VAR_POP |
DEREF | 参数 | VAR_SAMP |
DESCRIBE | PARAMETERS | VARCHAR |
DESCRIPTOR | PARTIAL | VARIABLE |
DESTROY | PARTITION | WHENEVER |
DESTRUCTOR | PATH | WIDTH_BUCKET |
DETERMINISTIC | POSTFIX | WITHOUT |
DICTIONARY | PREFIX | WINDOW |
DIAGNOSTICS | PREORDER | WITHIN |
DISCONNECT | PREPARE | WORK |
DOMAIN | PERCENT_RANK | WRITE |
DYNAMIC | PERCENTILE_CONT | XMLAGG |
EACH | PERCENTILE_DISC | XMLATTRIBUTES |
ELEMENT | POSITION_REGEX | XMLBINARY |
END-EXEC | PRESERVE | XMLCAST |
EQUALS | PRIOR | XMLCOMMENT |
EVERY | PRIVILEGES | XMLCONCAT |
EXCEPTION | RANGE | XMLDOCUMENT |
FALSE | READS | XMLELEMENT |
FILTER | real | XMLEXISTS |
FIRST | RECURSIVE | XMLFOREST |
FLOAT | REF | XMLITERATE |
FOUND | REFERENCING | XMLNAMESPACES |
FREE | REGR_AVGX | XMLPARSE |
FULLTEXTTABLE | REGR_AVGY | XMLPI |
FUSION | REGR_COUNT | XMLQUERY |
GENERAL | REGR_INTERCEPT | XMLSERIALIZE |
GET | REGR_R2 | XMLTABLE |
GLOBAL | REGR_SLOPE | XMLTEXT |
GO | REGR_SXX | XMLVALIDATE |
GROUPING | REGR_SXY | 年 |
HOLD | REGR_SYY | ZONE |