保留關鍵字 (Transact-SQL)
Microsoft SQL Server 利用保留的關鍵字來定義、操作和存取資料庫。保留的關鍵字是 SQL Server 用來剖析及瞭解 Transact-SQL 陳述式和批次之 Transact-SQL 語言文法的一部分。雖然在語意上可以利用 SQL Server 保留關鍵字作為 Transact-SQL 指令碼中的識別碼和物件名稱,但您只能利用分隔的識別碼來執行這個動作。
下表列出 SQL Server 保留關鍵字。
ADD |
EXISTS |
PRECISION |
ALL |
EXIT |
PRIMARY |
ALTER |
EXTERNAL |
|
AND |
FETCH |
PROC |
ANY |
FILE |
PROCEDURE |
AS |
FILLFACTOR |
PUBLIC |
ASC |
FOR |
RAISERROR |
AUTHORIZATION |
FOREIGN |
READ |
BACKUP |
FREETEXT |
READTEXT |
BEGIN |
FREETEXTTABLE |
RECONFIGURE |
BETWEEN |
FROM |
REFERENCES |
BREAK |
FULL |
REPLICATION |
BROWSE |
FUNCTION |
RESTORE |
BULK |
GOTO |
RESTRICT |
BY |
GRANT |
RETURN |
CASCADE |
GROUP |
REVERT |
CASE |
HAVING |
REVOKE |
CHECK |
HOLDLOCK |
RIGHT |
CHECKPOINT |
IDENTITY |
ROLLBACK |
CLOSE |
IDENTITY_INSERT |
ROWCOUNT |
CLUSTERED |
IDENTITYCOL |
ROWGUIDCOL |
COALESCE |
IF |
RULE |
COLLATE |
IN |
SAVE |
COLUMN |
INDEX |
SCHEMA |
COMMIT |
INNER |
SECURITYAUDIT |
COMPUTE |
INSERT |
SELECT |
CONSTRAINT |
INTERSECT |
SESSION_USER |
CONTAINS |
INTO |
SET |
CONTAINSTABLE |
IS |
SETUSER |
CONTINUE |
JOIN |
SHUTDOWN |
CONVERT |
KEY |
SOME |
CREATE |
KILL |
STATISTICS |
CROSS |
LEFT |
SYSTEM_USER |
CURRENT |
LIKE |
TABLE |
CURRENT_DATE |
LINENO |
TABLESAMPLE |
CURRENT_TIME |
LOAD |
TEXTSIZE |
CURRENT_TIMESTAMP |
MERGE |
THEN |
CURRENT_USER |
NATIONAL |
TO |
CURSOR |
NOCHECK |
TOP |
DATABASE |
NONCLUSTERED |
TRAN |
DBCC |
NOT |
TRANSACTION |
DEALLOCATE |
NULL |
TRIGGER |
DECLARE |
NULLIF |
TRUNCATE |
DEFAULT |
OF |
TSEQUAL |
DELETE |
OFF |
UNION |
DENY |
OFFSETS |
UNIQUE |
DESC |
ON |
UNPIVOT |
DISK |
OPEN |
UPDATE |
DISTINCT |
OPENDATASOURCE |
UPDATETEXT |
DISTRIBUTED |
OPENQUERY |
USE |
DOUBLE |
OPENROWSET |
USER |
DROP |
OPENXML |
VALUES |
DUMP |
OPTION |
VARYING |
ELSE |
OR |
VIEW |
END |
ORDER |
WAITFOR |
ERRLVL |
OUTER |
WHEN |
ESCAPE |
OVER |
WHERE |
EXCEPT |
PERCENT |
WHILE |
EXEC |
PIVOT |
WITH |
EXECUTE |
PLAN |
WRITETEXT |
另外,ISO 標準也定義了一份保留關鍵字的清單。請避免在物件名稱和識別碼上使用 ISO 保留關鍵字。下表所顯示的 ODBC 保留關鍵字清單與 ISO 保留關鍵字清單相同。
[!附註]
ISO 標準保留關鍵字清單有時限制性大於 SQL Server,有時比較小。例如,ISO 保留關鍵字清單包含 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 |
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 |
MONTH |
SYMMETRIC |
CORR |
MULTISET |
SYSTEM |
CORRESPONDING |
NAMES |
TEMPORARY |
COVAR_POP |
NATURAL |
TERMINATE |
COVAR_SAMP |
NCHAR |
THAN |
CUBE |
NCLOB |
TIME |
CUME_DIST |
NEW |
TIMESTAMP |
CURRENT_CATALOG |
NEXT |
TIMEZONE_HOUR |
CURRENT_DEFAULT_TRANSFORM_GROUP |
NO |
TIMEZONE_MINUTE |
CURRENT_PATH |
NONE |
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 |
VALUE |
DEPTH |
PAD |
VAR_POP |
DEREF |
PARAMETER |
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 |
YEAR |
HOLD |
REGR_SYY |
ZONE |