Reserved words
Synopsis
%AFTERHAVING | %ALLINDEX | %ALPHAUP | %ALTER | %BEGTRANS | %CHECKPRIV | %CLASSNAME | %CLASSPARAMETER | %DBUGFULL | %DELDATA | %DESCRIPTION | %EXACT | %EXTERNAL | %FILE | %FIRSTTABLE | %FLATTEN | %FOREACH | %FULL | %ID | %IDADDED | %IGNOREINDEX | %IGNOREINDICES | %INLIST | %INORDER | %INTERNAL | %INTEXT | %INTRANS | %INTRANSACTION | %KEY | %MATCHES | %MCODE | %MERGE | %MINUS | %MVR | %NOCHECK | %NODELDATA | %NOFLATTEN | %NOFPLAN | %NOINDEX | %NOLOCK | %NOMERGE | %NOPARALLEL | %NOREDUCE | %NOSVSO | %NOTOPOPT | %NOTRIGGER | %NOUNIONOROPT | %NUMROWS | %ODBCIN | %ODBCOUT | %PARALLEL | %PLUS | %PROFILE | %PROFILE_ALL | %PUBLICROWID | %ROUTINE | %ROWCOUNT | %RUNTIMEIN | %RUNTIMEOUT | %STARTSWITH | %STARTTABLE | %SQLSTRING | %SQLUPPER | %STRING | %TABLENAME | %TRUNCATE | %UPPER | %VALUE | %VID ABSOLUTE | ADD | ALL | ALLOCATE | ALTER | AND | ANY | ARE | AS | ASC | ASSERTION | AT | AUTHORIZATION | AVG | BEGIN | BETWEEN | BIT | BIT_LENGTH | BOTH | BY | CASCADE | CASE | CAST | CHAR | CHARACTER | CHARACTER_LENGTH | CHAR_LENGTH | CHECK | CLOSE | COALESCE | COLLATE | COMMIT | CONNECT | CONNECTION | CONSTRAINT | CONSTRAINTS | CONTINUE | CONVERT | CORRESPONDING | COUNT | CREATE | CROSS | CURRENT | CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | CURRENT_USER | CURSOR | DATE | DEALLOCATE | DEC | DECIMAL | DECLARE | DEFAULT | DEFERRABLE | DEFERRED | DELETE | DESC | DESCRIBE | DESCRIPTOR | DIAGNOSTICS | DISCONNECT | DISTINCT | DOMAIN | DOUBLE | DROP | ELSE | END | ENDEXEC | ESCAPE | EXCEPT | EXCEPTION | EXEC | EXECUTE | EXISTS | EXTERNAL | EXTRACT | FALSE | FETCH | FIRST | FLOAT | FOR | FOREIGN | FOUND | FROM | FULL | GET | GLOBAL | GO | GOTO | GRANT | GROUP | HAVING | HOUR | IDENTITY | IMMEDIATE | IN | INDICATOR | INITIALLY | INNER | INPUT | INSENSITIVE | INSERT | INT | INTEGER | INTERSECT | INTERVAL | INTO | IS | ISOLATION | JOIN | LANGUAGE | LAST | LEADING | LEFT | LEVEL | LIKE | LOCAL | LOWER | MATCH | MAX | MIN | MINUTE | MODULE | NAMES | NATIONAL | NATURAL | NCHAR | NEXT | NO | NOT | NULL | NULLIF | NUMERIC | OCTET_LENGTH | OF | ON | ONLY | OPEN | OPTION | OR | OUTER | OUTPUT | OVERLAPS | PAD | PARTIAL | PREPARE | PRESERVE | PRIMARY | PRIOR | PRIVILEGES | PROCEDURE | PUBLIC | READ | REAL | REFERENCES | RELATIVE | RESTRICT | REVOKE | RIGHT | ROLE | ROLLBACK | ROWS | SCHEMA | SCROLL | SECOND | SECTION | SELECT | SESSION_USER | SET | SMALLINT | SOME | SPACE | SQLERROR | SQLSTATE | STATISTICS | SUBSTRING | SUM | SYSDATE | SYSTEM_USER | TABLE | TEMPORARY | THEN | TIME | TIMEZONE_HOUR | TIMEZONE_MINUTE | TO | TOP | TRAILING | TRANSACTION | TRIM | TRUE | UNION | UNIQUE | UPDATE | UPPER | USER | USING | VALUES | VARCHAR | VARYING | WHEN | WHENEVER | WHERE | WITH | WORK | WRITE
Description
Within SQL certain words are reserved. You cannot use an SQL reserved word as an SQL identifier (such as the name for a table, a column, an AS alias, or other entity), unless:
The word is delimited with double quotes ("word"), and
Delimited identifiers are supported. For further details, refer to the Identifiers in Using Caché SQL.
This list contains only those words that are reserved in this sense; it does not contain all SQL keywords. Several of the words listed above start with the "%" character, indicating that they are Caché SQL proprietary extension keywords. In general, it is not recommended to use words that begin with "%" as identifiers such as table and column names, because new Caché SQL extension keywords may be added in the future.
You can check if a word is an SQL reserved word by invoking the IsReservedWord() method, as shown in the following example. Specify the reserved word as a quoted string; reserved words are not case-sensitive. $SYSTEM.SQL.IsReservedWord() returns a boolean value.
WRITE !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("VARCHAR") WRITE !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("varchar") WRITE !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("VarChar") WRITE !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("FRED")
This method can also be called as a stored procedure from ODBC or JDBC: %SYSTEM.SQL_IsReservedWord("nnnn").