/******************************************************************** keywords.sql script to create and populate a keywords table for Sybase 10, MS 6 and ANSI. The information here was extracted from online documentation current for Sybase 10 and 11 and MS SQL 6 on Jan 30 1996. It includes the current keywords for those products (the Sybase 11 set comprises only the additions to the Sybase 10 set), and also words that are ANSI-SQL 92 reserved words, potential future ANSI reserved words, and potential future MS SQL reserved words. ** This script does not install to any particular database!! ** keywords a list of uppercased keywords, with an origin_id that joins to: keywords_origin a list of sources for the keywords exec check_keyword to show the list, in alpha order with origin exec check_keyword 'word' to see if 'word' is in the list Data is supplied as INSERT statements for simplicity. Please hack this SQL to your requirements, but if you pass it on, please leave it intact. Thanks. Who When Why ----------------------------------------------------------------- simon 30jan96 created at The SQL Workshop, Milton Keynes, UK walker siwalker@cix.compulink.co.uk ********************************************************************/ set nocount on go if exists(select * from sysobjects where name = "keywords" and type = "U") drop table keywords go create table keywords (word char(50), origin_id tinyint) go if exists(select * from sysobjects where name = "keywords_origin" and type = "U") drop table keywords_origin go create table keywords_origin (origin_id tinyint, origin varchar(80)) go insert keywords_origin values (1, "SYBASE 10 Reserved Words") insert keywords_origin values (2, "ANSI SQL-92 Reserved Words") insert keywords_origin values (3, "Potential ANSI SQL-92 Reserved Words") insert keywords_origin values (4, "MS SQL 6 Reserved Words") insert keywords_origin values (5, "Future MS SQL 6 Reserved Words") insert keywords_origin values (6, "SYBASE 11 Reserved Words") go insert keywords values('ABSOLUTE', 2) insert keywords values('ABSOLUTE', 5) insert keywords values('ACTION', 2) insert keywords values('ACTION', 5) insert keywords values('ADD', 1) insert keywords values('ADD', 4) insert keywords values('AFTER', 3) insert keywords values('ALIAS', 3) insert keywords values('ALL', 1) insert keywords values('ALL', 4) insert keywords values('ALLOCATE', 2) insert keywords values('ALLOCATE', 5) insert keywords values('ALTER', 1) insert keywords values('ALTER', 4) insert keywords values('AND', 1) insert keywords values('AND', 4) insert keywords values('ANY', 1) insert keywords values('ANY', 4) insert keywords values('ARE', 2) insert keywords values('ARE', 5) insert keywords values('ARITH_OVERFLOW', 1) insert keywords values('AS', 1) insert keywords values('AS', 4) insert keywords values('ASC', 1) insert keywords values('ASC', 4) insert keywords values('ASSERTION', 2) insert keywords values('ASSERTION', 5) insert keywords values('ASYNC', 3) insert keywords values('AT', 1) insert keywords values('AT', 5) insert keywords values('AUTHORIZATION', 1) insert keywords values('AUTHORIZATION', 5) insert keywords values('AVG', 1) insert keywords values('AVG', 4) insert keywords values('BEFORE', 3) insert keywords values('BEGIN', 1) insert keywords values('BEGIN', 4) insert keywords values('BETWEEN', 1) insert keywords values('BETWEEN', 4) insert keywords values('BIT', 2) insert keywords values('BIT_LENGTH', 2) insert keywords values('BOOLEAN', 3) insert keywords values('BOTH', 2) insert keywords values('BOTH', 5) insert keywords values('BREADTH', 3) insert keywords values('BREAK', 1) insert keywords values('BREAK', 4) insert keywords values('BROWSE', 1) insert keywords values('BROWSE', 4) insert keywords values('BULK', 1) insert keywords values('BULK', 4) insert keywords values('BY', 1) insert keywords values('BY', 4) insert keywords values('CALL', 3) insert keywords values('CASCADE', 1) insert keywords values('CASCADE', 5) insert keywords values('CASCADED', 2) insert keywords values('CASCADED', 5) insert keywords values('CASE', 2) insert keywords values('CASE', 4) insert keywords values('CAST', 2) insert keywords values('CAST', 5) insert keywords values('CATALOG', 2) insert keywords values('CATALOG', 5) insert keywords values('CHAR', 2) insert keywords values('CHARACTER', 2) insert keywords values('CHARACTER', 5) insert keywords values('CHARACTER_LENGTH', 2) insert keywords values('CHARACTER_LENGTH', 5) insert keywords values('CHAR_CONVERT', 1) insert keywords values('CHAR_LENGTH', 2) insert keywords values('CHAR_LENGTH', 5) insert keywords values('CHECK', 1) insert keywords values('CHECK', 4) insert keywords values('CHECKPOINT', 1) insert keywords values('CHECKPOINT', 4) insert keywords values('CLOSE', 1) insert keywords values('CLOSE', 4) insert keywords values('CLUSTERED', 1) insert keywords values('CLUSTERED', 4) insert keywords values('COALESCE', 2) insert keywords values('COALESCE', 4) insert keywords values('COLLATE', 2) insert keywords values('COLLATE', 5) insert keywords values('COLLATION', 2) insert keywords values('COLLATION', 5) insert keywords values('COLUMN', 2) insert keywords values('COLUMN', 5) insert keywords values('COMMIT', 1) insert keywords values('COMMIT', 4) insert keywords values('COMMITTED', 4) insert keywords values('COMPLETION', 3) insert keywords values('COMPUTE', 1) insert keywords values('COMPUTE', 4) insert keywords values('CONFIRM', 1) insert keywords values('CONFIRM', 4) insert keywords values('CONNECT', 2) insert keywords values('CONNECT', 5) insert keywords values('CONNECTION', 2) insert keywords values('CONNECTION', 5) insert keywords values('CONSTRAINT', 1) insert keywords values('CONSTRAINT', 4) insert keywords values('CONSTRAINTS', 2) insert keywords values('CONSTRAINTS', 5) insert keywords values('CONTINUE', 1) insert keywords values('CONTINUE', 4) insert keywords values('CONTROLROW', 1) insert keywords values('CONTROLROW', 4) insert keywords values('CONVERT', 1) insert keywords values('CONVERT', 4) insert keywords values('CORRESPONDING', 2) insert keywords values('CORRESPONDING', 5) insert keywords values('COUNT', 1) insert keywords values('COUNT', 4) insert keywords values('CREATE', 1) insert keywords values('CREATE', 4) insert keywords values('CROSS', 2) insert keywords values('CURRENT', 1) insert keywords values('CURRENT', 4) insert keywords values('CURRENT_DATE', 2) insert keywords values('CURRENT_DATE', 4) insert keywords values('CURRENT_TIME', 2) insert keywords values('CURRENT_TIME', 4) insert keywords values('CURRENT_TIMESTAMP', 2) insert keywords values('CURRENT_TIMESTAMP', 4) insert keywords values('CURRENT_USER', 2) insert keywords values('CURRENT_USER', 4) insert keywords values('CURSOR', 1) insert keywords values('CURSOR', 4) insert keywords values('CYCLE', 3) insert keywords values('DATA', 3) insert keywords values('DATABASE', 1) insert keywords values('DATABASE', 4) insert keywords values('DATA_PGS', 1) insert keywords values('DATE', 2) insert keywords values('DATE', 5) insert keywords values('DAY', 2) insert keywords values('DAY', 5) insert keywords values('DBCC', 1) insert keywords values('DBCC', 4) insert keywords values('DEALLOCATE', 1) insert keywords values('DEALLOCATE', 4) insert keywords values('DEC', 2) insert keywords values('DECIMAL', 2) insert keywords values('DECLARE', 1) insert keywords values('DECLARE', 4) insert keywords values('DEFAULT', 1) insert keywords values('DEFAULT', 4) insert keywords values('DEFERRABLE', 2) insert keywords values('DEFERRABLE', 5) insert keywords values('DEFERRED', 2) insert keywords values('DEFERRED', 5) insert keywords values('DELETE', 1) insert keywords values('DELETE', 4) insert keywords values('DEPTH', 3) insert keywords values('DESC', 1) insert keywords values('DESC', 4) insert keywords values('DESCRIBE', 2) insert keywords values('DESCRIBE', 5) insert keywords values('DESCRIPTOR', 2) insert keywords values('DESCRIPTOR', 5) insert keywords values('DIAGNOSTICS', 2) insert keywords values('DIAGNOSTICS', 5) insert keywords values('DICTIONARY', 3) insert keywords values('DISCONNECT', 2) insert keywords values('DISCONNECT', 5) insert keywords values('DISK', 1) insert keywords values('DISK', 4) insert keywords values('DISTINCT', 1) insert keywords values('DISTINCT', 4) insert keywords values('DOMAIN', 5) insert keywords values('DOMAININTERVAL', 2) insert keywords values('DOUBLE', 1) insert keywords values('DOUBLE', 4) insert keywords values('DROP', 1) insert keywords values('DROP', 4) insert keywords values('DUMMY', 1) insert keywords values('DUMMY', 4) insert keywords values('DUMP', 1) insert keywords values('DUMP', 4) insert keywords values('EACH', 3) insert keywords values('ELSE', 1) insert keywords values('ELSE', 4) insert keywords values('ELSEIF', 3) insert keywords values('END', 1) insert keywords values('END', 4) insert keywords values('END-EXEC', 2) insert keywords values('ENDTRAN', 1) insert keywords values('END_EXEC', 5) insert keywords values('EQUALS', 3) insert keywords values('ERRLVL', 1) insert keywords values('ERRLVL', 4) insert keywords values('ERROREXIT', 1) insert keywords values('ERROREXIT', 4) insert keywords values('ESCAPE', 1) insert keywords values('ESCAPE', 5) insert keywords values('EXCEPT', 1) insert keywords values('EXCEPT', 4) insert keywords values('EXCEPTION', 2) insert keywords values('EXCEPTION', 5) insert keywords values('EXEC', 1) insert keywords values('EXEC', 4) insert keywords values('EXECUTE', 1) insert keywords values('EXECUTE', 4) insert keywords values('EXISTS', 1) insert keywords values('EXISTS', 4) insert keywords values('EXIT', 1) insert keywords values('EXPIREDATE', 5) insert keywords values('EXTERNAL', 2) insert keywords values('EXTERNAL', 5) insert keywords values('EXTRACT', 2) insert keywords values('EXTRACT', 5) insert keywords values('FALSE', 2) insert keywords values('FALSE', 5) insert keywords values('FETCH', 1) insert keywords values('FETCH', 4) insert keywords values('FILE', 5) insert keywords values('FILLFACTOR', 1) insert keywords values('FILLFACTOR', 4) insert keywords values('FIRST', 2) insert keywords values('FIRST', 5) insert keywords values('FLOAT', 2) insert keywords values('FLOPPY', 4) insert keywords values('FOR', 1) insert keywords values('FOR', 4) insert keywords values('FOREIGN', 1) insert keywords values('FOREIGN', 4) insert keywords values('FOUND', 2) insert keywords values('FROM', 1) insert keywords values('FROM', 4) insert keywords values('FULL', 2) insert keywords values('FULL', 5) insert keywords values('GENERAL', 3) insert keywords values('GET', 2) insert keywords values('GET', 5) insert keywords values('GLOBAL', 2) insert keywords values('GLOBAL', 5) insert keywords values('GO', 2) insert keywords values('GOTO', 1) insert keywords values('GOTO', 4) insert keywords values('GRANT', 1) insert keywords values('GRANT', 4) insert keywords values('GROUP', 1) insert keywords values('GROUP', 4) insert keywords values('HAVING', 1) insert keywords values('HAVING', 4) insert keywords values('HOLDLOCK', 1) insert keywords values('HOLDLOCK', 4) insert keywords values('HOUR', 2) insert keywords values('HOUR', 5) insert keywords values('IDENTITY', 1) insert keywords values('IDENTITY', 4) insert keywords values('IDENTITYCOL', 4) insert keywords values('IDENTITY_INSERT', 1) insert keywords values('IDENTITY_INSERT', 4) insert keywords values('IF', 1) insert keywords values('IF', 4) insert keywords values('IGNORE', 3) insert keywords values('IMMEDIATE', 2) insert keywords values('IMMEDIATE', 5) insert keywords values('IN', 1) insert keywords values('IN', 4) insert keywords values('INDEX', 1) insert keywords values('INDEX', 4) insert keywords values('INDICATOR', 2) insert keywords values('INITIALLY', 2) insert keywords values('INITIALLY', 5) insert keywords values('INNER', 2) insert keywords values('INNER', 5) insert keywords values('INPUT', 2) insert keywords values('INPUT', 5) insert keywords values('INSENSITIVE', 2) insert keywords values('INSENSITIVE', 4) insert keywords values('INSERT', 1) insert keywords values('INSERT', 4) insert keywords values('INT', 2) insert keywords values('INTEGER', 2) insert keywords values('INTERSECT', 1) insert keywords values('INTERSECT', 4) insert keywords values('INTERVAL', 5) insert keywords values('INTO', 1) insert keywords values('INTO', 4) insert keywords values('IS', 1) insert keywords values('IS', 4) insert keywords values('ISOLATION', 1) insert keywords values('ISOLATION', 4) insert keywords values('JOIN', 2) insert keywords values('JOIN', 5) insert keywords values('KEY', 1) insert keywords values('KEY', 4) insert keywords values('KILL', 1) insert keywords values('KILL', 4) insert keywords values('LANGUAGE', 2) insert keywords values('LAST', 2) insert keywords values('LAST', 5) insert keywords values('LEADING', 2) insert keywords values('LEADING', 5) insert keywords values('LEAVE', 3) insert keywords values('LEFT', 2) insert keywords values('LEFT', 5) insert keywords values('LESS', 3) insert keywords values('LEVEL', 1) insert keywords values('LEVEL', 4) insert keywords values('LIKE', 1) insert keywords values('LIKE', 4) insert keywords values('LIMIT', 3) insert keywords values('LINENO', 1) insert keywords values('LINENO', 4) insert keywords values('LOAD', 1) insert keywords values('LOAD', 4) insert keywords values('LOCAL', 2) insert keywords values('LOCAL', 5) insert keywords values('LOOP', 3) insert keywords values('LOWER', 2) go insert keywords values('MATCH', 2) insert keywords values('MATCH', 5) insert keywords values('MAX', 1) insert keywords values('MAX', 4) insert keywords values('MAX_ROWS_PER_PAGE', 6) insert keywords values('MIN', 1) insert keywords values('MIN', 4) insert keywords values('MINUTE', 2) insert keywords values('MINUTE', 5) insert keywords values('MIRROR', 1) insert keywords values('MIRROREXIT', 1) insert keywords values('MIRROREXIT', 4) insert keywords values('MODIFY', 3) insert keywords values('MODULE', 2) insert keywords values('MONTH', 2) insert keywords values('MONTH', 5) insert keywords values('NAMES', 2) insert keywords values('NAMES', 5) insert keywords values('NATIONAL', 1) insert keywords values('NATIONAL', 5) insert keywords values('NATURAL', 2) insert keywords values('NATURAL', 5) insert keywords values('NCHAR', 2) insert keywords values('NCHAR', 5) insert keywords values('NEW', 3) insert keywords values('NEXT', 2) insert keywords values('NEXT', 5) insert keywords values('NO', 2) insert keywords values('NO', 5) insert keywords values('NOCHECK', 4) insert keywords values('NOHOLDLOCK', 1) insert keywords values('NONCLUSTERED', 1) insert keywords values('NONCLUSTERED', 4) insert keywords values('NONE', 3) insert keywords values('NOT', 1) insert keywords values('NOT', 4) insert keywords values('NULL', 1) insert keywords values('NULL', 4) insert keywords values('NULLIF', 2) insert keywords values('NULLIF', 4) insert keywords values('NUMERICSPACE', 2) insert keywords values('NUMERIC_TRUNCATION', 1) insert keywords values('OBJECT', 3) insert keywords values('OCTET_LENGTH', 2) insert keywords values('OCTET_LENGTH', 5) insert keywords values('OF', 1) insert keywords values('OF', 4) insert keywords values('OFF', 1) insert keywords values('OFF', 4) insert keywords values('OFFSETS', 1) insert keywords values('OFFSETS', 4) insert keywords values('OID', 3) insert keywords values('OLD', 3) insert keywords values('ON', 1) insert keywords values('ON', 4) insert keywords values('ONCE', 1) insert keywords values('ONCE', 4) insert keywords values('ONLINE', 6) insert keywords values('ONLY', 1) insert keywords values('ONLY', 4) insert keywords values('OPEN', 1) insert keywords values('OPEN', 4) insert keywords values('OPERATION', 3) insert keywords values('OPERATORS', 3) insert keywords values('OPTION', 1) insert keywords values('OPTION', 4) insert keywords values('OR', 1) insert keywords values('OR', 4) insert keywords values('ORDER', 1) insert keywords values('ORDER', 4) insert keywords values('OTHERS', 3) insert keywords values('OUTER', 5) insert keywords values('OUTERSQLCODE', 2) insert keywords values('OUTPUT', 2) insert keywords values('OUTPUT', 5) insert keywords values('OVER', 1) insert keywords values('OVER', 4) insert keywords values('OVERLAPS', 2) insert keywords values('OVERLAPS', 5) insert keywords values('PAD', 2) insert keywords values('PAD', 5) insert keywords values('PARAMETERS', 3) insert keywords values('PARTIAL', 2) insert keywords values('PARTIAL', 5) insert keywords values('PARTITION', 6) insert keywords values('PENDANT', 3) insert keywords values('PERM', 1) insert keywords values('PERM', 4) insert keywords values('PERMANENT', 1) insert keywords values('PERMANENT', 4) insert keywords values('PIPE', 4) insert keywords values('PLAN', 1) insert keywords values('PLAN', 4) insert keywords values('POSITION', 2) insert keywords values('POSITION', 5) insert keywords values('PRECISION', 1) insert keywords values('PRECISION', 4) insert keywords values('PREORDER', 3) insert keywords values('PREPARE', 1) insert keywords values('PREPARE', 4) insert keywords values('PRESERVE', 2) insert keywords values('PRESERVE', 5) insert keywords values('PRIMARY', 1) insert keywords values('PRIMARY', 4) insert keywords values('PRINT', 1) insert keywords values('PRINT', 4) insert keywords values('PRIOR', 2) insert keywords values('PRIOR', 5) insert keywords values('PRIVATE', 3) insert keywords values('PRIVILEGES', 1) insert keywords values('PRIVILEGES', 5) insert keywords values('PROC', 1) insert keywords values('PROC', 4) insert keywords values('PROCEDURE', 1) insert keywords values('PROCEDURE', 4) insert keywords values('PROCESSEXIT', 1) insert keywords values('PROCESSEXIT', 4) insert keywords values('PROTECTED', 3) insert keywords values('PUBLIC', 1) insert keywords values('PUBLIC', 4) insert keywords values('RAISERROR', 1) insert keywords values('RAISERROR', 4) insert keywords values('READ', 1) insert keywords values('READ', 4) insert keywords values('READTEXT', 1) insert keywords values('REAL', 2) insert keywords values('RECONFIGURE', 1) insert keywords values('RECONFIGURE', 4) insert keywords values('RECURSIVE', 3) insert keywords values('REF', 3) insert keywords values('REFERENCES', 1) insert keywords values('REFERENCES', 4) insert keywords values('REFERENCING', 3) insert keywords values('RELATIVE', 2) insert keywords values('RELATIVE', 5) insert keywords values('REPEATABLE', 4) insert keywords values('REPLACE', 1) insert keywords values('REPLICATION', 4) insert keywords values('RESERVED_PGS', 1) insert keywords values('RESIGNAL', 3) insert keywords values('RESTRICT', 2) insert keywords values('RESTRICT', 5) insert keywords values('RETAINDAYS', 5) insert keywords values('RETURN', 1) insert keywords values('RETURN', 3) insert keywords values('RETURN', 4) insert keywords values('RETURNS', 3) insert keywords values('REVOKE', 1) insert keywords values('REVOKE', 4) insert keywords values('RIGHT', 2) insert keywords values('RIGHT', 5) insert keywords values('ROLE', 1) insert keywords values('ROLE', 3) insert keywords values('ROLLBACK', 1) insert keywords values('ROLLBACK', 4) insert keywords values('ROUTINE', 3) insert keywords values('ROW', 3) insert keywords values('ROWCNT', 1) insert keywords values('ROWCOUNT', 1) insert keywords values('ROWCOUNT', 4) insert keywords values('ROWS', 1) insert keywords values('ROWS', 5) insert keywords values('RULE', 1) insert keywords values('RULE', 4) insert keywords values('SAVE', 1) insert keywords values('SAVE', 4) insert keywords values('SAVEPOINT', 3) insert keywords values('SCHEMA', 1) insert keywords values('SCHEMA', 5) insert keywords values('SCROLL', 2) insert keywords values('SCROLL', 4) insert keywords values('SEARCH', 3) insert keywords values('SECOND', 2) insert keywords values('SECOND', 5) insert keywords values('SECTION', 2) insert keywords values('SELECT', 1) insert keywords values('SELECT', 4) insert keywords values('SENSITIVE', 3) insert keywords values('SEQUENCE', 3) insert keywords values('SERIALIZABLE', 4) insert keywords values('SESSION', 2) insert keywords values('SESSION', 5) insert keywords values('SESSION_USER', 2) insert keywords values('SESSION_USER', 4) insert keywords values('SET', 1) insert keywords values('SET', 4) insert keywords values('SETUSER', 1) insert keywords values('SETUSER', 4) insert keywords values('SHARED', 1) insert keywords values('SHUTDOWN', 1) insert keywords values('SHUTDOWN', 4) insert keywords values('SIGNAL', 3) insert keywords values('SIMILAR', 3) insert keywords values('SIZE', 2) insert keywords values('SIZE', 5) insert keywords values('SMALLINT', 2) insert keywords values('SOME', 1) insert keywords values('SOME', 4) insert keywords values('SPACE', 5) insert keywords values('SQL', 2) insert keywords values('SQLERROR', 2) insert keywords values('SQLEXCEPTION', 3) insert keywords values('SQLSTATE', 2) insert keywords values('SQLSTATE', 5) insert keywords values('STATISTICS', 1) insert keywords values('STATISTICS', 4) insert keywords values('STRIPE', 1) insert keywords values('STRUCTURE', 3) insert keywords values('SUBSTRING', 2) insert keywords values('SUM', 1) insert keywords values('SUM', 4) insert keywords values('SYB_IDENTITY', 1) insert keywords values('SYB_RES', 1) insert keywords values('SYSTEM_USER', 2) insert keywords values('SYSTEM_USER', 4) insert keywords values('TABLE', 1) insert keywords values('TABLE', 4) insert keywords values('TAPE', 4) insert keywords values('TEMP', 1) insert keywords values('TEMP', 4) insert keywords values('TEMPORARY', 1) insert keywords values('TEMPORARY', 4) insert keywords values('TEST', 3) insert keywords values('TEXTSIZE', 1) insert keywords values('TEXTSIZE', 4) insert keywords values('THEN', 2) insert keywords values('THEN', 4) insert keywords values('THERE', 3) insert keywords values('TIME', 2) insert keywords values('TIME', 5) insert keywords values('TIMESTAMP', 2) insert keywords values('TIMESTAMP', 5) insert keywords values('TIMEZONE_HOUR', 2) insert keywords values('TIMEZONE_HOUR', 5) insert keywords values('TIMEZONE_MINUTE', 2) insert keywords values('TIMEZONE_MINUTE', 5) insert keywords values('TO', 1) insert keywords values('TO', 4) insert keywords values('TRAILING', 2) insert keywords values('TRAILING', 5) insert keywords values('TRAN', 1) insert keywords values('TRAN', 4) insert keywords values('TRANSACTION', 1) insert keywords values('TRANSACTION', 4) insert keywords values('TRANSLATE', 2) insert keywords values('TRANSLATE', 5) insert keywords values('TRANSLATION', 2) insert keywords values('TRANSLATION', 5) insert keywords values('TREE', 1) insert keywords values('TRIGGER', 1) insert keywords values('TRIGGER', 4) insert keywords values('TRIM', 2) insert keywords values('TRUE', 2) insert keywords values('TRUE', 5) insert keywords values('TRUNCATE', 1) insert keywords values('TRUNCATE', 4) insert keywords values('TSEQUAL', 1) insert keywords values('TSEQUAL', 4) insert keywords values('TYPE', 3) insert keywords values('UNCOMMITTED', 4) insert keywords values('UNDER', 3) insert keywords values('UNION', 1) insert keywords values('UNION', 4) insert keywords values('UNIQUE', 1) insert keywords values('UNIQUE', 4) insert keywords values('UNKNOWN', 2) insert keywords values('UNKNOWN', 5) insert keywords values('UNPARTITION', 6) insert keywords values('UPDATE', 1) insert keywords values('UPDATE', 4) insert keywords values('UPDATETEXT', 4) insert keywords values('UPPER', 2) insert keywords values('USAGE', 2) insert keywords values('USAGE', 5) insert keywords values('USE', 4) insert keywords values('USED_PGS', 1) insert keywords values('USER', 1) insert keywords values('USER', 4) insert keywords values('USER_OPTION', 1) insert keywords values('USING', 1) insert keywords values('USING', 5) insert keywords values('VALUE', 2) insert keywords values('VALUE', 5) insert keywords values('VALUES', 1) insert keywords values('VALUES', 4) insert keywords values('VARCHAR', 2) insert keywords values('VARIABLE', 3) insert keywords values('VARYING', 1) insert keywords values('VARYING', 4) insert keywords values('VIEW', 1) insert keywords values('VIEW', 4) insert keywords values('VIRTUAL', 3) insert keywords values('VISIBLE', 3) insert keywords values('VOLUME', 5) insert keywords values('WAIT', 3) insert keywords values('WAITFOR', 1) insert keywords values('WAITFOR', 4) insert keywords values('WHEN', 2) insert keywords values('WHEN', 4) insert keywords values('WHENEVER', 2) insert keywords values('WHERE', 1) insert keywords values('WHERE', 4) insert keywords values('WHILE', 1) insert keywords values('WHILE', 4) insert keywords values('WITH', 1) insert keywords values('WITH', 4) insert keywords values('WITHOUT', 3) insert keywords values('WORK', 1) insert keywords values('WORK', 5) insert keywords values('WRITE', 2) insert keywords values('WRITE', 5) insert keywords values('WRITETEXT', 1) insert keywords values('WRITETEXT', 4) insert keywords values('YEAR', 2) insert keywords values('YEAR', 5) insert keywords values('ZONE', 2) insert keywords values('ZONE', 5) go create unique clustered index keywords_cx on keywords(word, origin_id) go if exists(select * from sysobjects where type = "P" and name = "check_keyword") drop procedure check_keyword go create procedure check_keyword @word varchar(50) = NULL as if @word is NULL select @word = "%" select word, origin from keywords w, keywords_origin o where w.origin_id = o.origin_id and word like upper(@word) order by word, origin return (0) go