Microsoft® SQL Server™ 使用保留的關鍵字來定義、管理,並存取資料庫。所保留的關鍵字是 Transact-SQL 語言文法的一部份, Transact-SQL 語言是 SQL Server 用來剖析並理解 Transact-SQL 陳述式與批次處理之用的。雖然就語法上來說,有可能可用 SQL Server 的保留關鍵字來作為 Transact-SQL 指令碼中的識別項與物件名稱,但這只適用於分隔的識別項。
下列資料表列示了 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 來說,它並不需要將 INT 辨識為保留關鍵字。
Transact-SQL 的保留關鍵字可作為識別項或資料庫名稱或資料庫物件之用,例如資料表、資料行、檢視表等等。請使用加引號的識別項或分隔的識別項。而作為變數名稱及預存程序參數的保留關鍵字,其使用並不受限制。若需相關資訊,請參閱使用識別項。
下列文字是保留給 ODBC 函數呼叫之用的。這些文字並不包含最小的 SQL 文法;不過,為了確保相容於支援核心 SQL 文法的驅動程式,應用程式應避免使用這些關鍵字。
此為 ODBC 目前的保留關鍵字清單。如需詳細資訊,請參閱 Microsoft ODBC 3.0 Programmer's Reference, Volume 2, Appendix 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 |
| FALSE | PREFIX | YEAR |
| FIRST | PREORDER | ZONE |
| FLOAT | PREPARE |