Microsoft SQL Server 2000 使用保留關鍵字定義、操作和存取資料庫。這些關鍵字構成 Transact-SQL 語言語法核心,用於解析和理解 T-SQL 陳述式與批次。雖然在語法上可將保留關鍵字作為識別碼和物件名稱 (需使用分隔識別碼,如方括號 [] 或雙引號 ""),但強烈建議避免如此使用,以免造成程式碼混淆與維護困難。
| 關鍵字 | 關鍵字 | 關鍵字 | 關鍵字 | 關鍵字 |
|---|---|---|---|---|
| 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 |
tbl_, col_, @v_)。[Order], [Group] 而非雙引號,相容性更佳。SET QUOTED_IDENTIFIER ON 時,雙引號視為分隔識別碼;OFF 時視為字串常數。建議保持 ON (預設)。MERGE, TRY_CATCH 等),命名時預留彈性。-- 檢查識別碼是否為保留字
SELECT CASE WHEN 'Order' IN (
SELECT keyword FROM (VALUES
('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')
) AS k(keyword)) THEN '保留字' ELSE '非保留字' END AS 結果