2013-05-27 8 views
2

Мне нужен список зарезервированных ключевых слов Oracle Database 10g и SQL Server 2008. Мое приложение выполняет DDL-инструкции, поэтому мне нужно проверить введенные имена таблиц, столбцов и т. Д. На зарезервированные слова. Я знаю, что я могу скопировать и вставить слова из сайтов: Oracle 10g и SQL Server 2008зарезервированные слова Oracle и SQL Server

Но я предпочел бы команду SQL, так что может быть загружен динамически ключевые слова. Для оракула существует команда:

SELECT KEYWORD FROM V$RESERVED_WORDS 
ORDER BY KEYWORD ASC 
; 

Это просто странно, что эта команда получает 1146 слов, но онлайн список содержит только около 456! Есть ли причины? Есть ли также команда для баз данных SQL Server?

+1

Проверьте это для сервера sql .. http://msdn.microsoft.com/en-us/library/ms189822(v=sql. 105) .aspx. Я считаю, что нет никакой эквивалентной таблицы или представления в sql-сервере. – Elmer

ответ

2

К этому вы можете получить все ключевые слова для MS SQL Server -

SELECT t.keyword 
FROM (
    VALUES 
     ('ABSOLUTE'),('ACTION'),('ADA'),('ADD'), 
     ('ADMIN'),('AFTER'),('AGGREGATE'),('ALIAS'), 
     ('ALL'),('ALLOCATE'),('ALTER'),('AND'), 
     ('ANY'),('ARE'),('ARRAY'),('AS'), 
     ('ASC'),('ASENSITIVE'),('ASSERTION'),('ASYMMETRIC'), 
     ('AT'),('ATOMIC'),('AUTHORIZATION'),('AVG'), 
     ('BACKUP'),('BEFORE'),('BEGIN'),('BETWEEN'), 
     ('BINARY'),('BIT'),('BIT_LENGTH'),('BLOB'), 
     ('BOOLEAN'),('BOTH'),('BREADTH'),('BREAK'), 
     ('BROWSE'),('BULK'),('BY'),('CALL'), 
     ('CALLED'),('CARDINALITY'),('CASCADE'),('CASCADED'), 
     ('CASE'),('CAST'),('CATALOG'),('CHAR'), 
     ('CHAR_LENGTH'),('CHARACTER'),('CHARACTER_LENGTH'), 
     ('CHECK'),('CHECKPOINT'),('CLASS'),('CLOB'),('CLOSE'), 
     ('CLUSTERED'),('COALESCE'),('COLLATE'),('COLLATION'),('COLLECT'),('COLUMN'),('COMMIT'), 
     ('COMPLETION'),('COMPUTE'),('CONDITION'),('CONNECT'), 
     ('CONNECTION'),('CONSTRAINT'),('CONSTRAINTS'),('CONSTRUCTOR'), 
     ('CONTAINS'),('CONTAINSTABLE'),('CONTINUE'),('CONVERT'),('CORR'), 
     ('CORRESPONDING'),('COUNT'),('COVAR_POP'),('COVAR_SAMP'),('CREATE'), 
     ('CROSS'),('CUBE'),('CUME_DIST'),('CURRENT'),('CURRENT_CATALOG'), 
     ('CURRENT_DATE'),('CURRENT_DEFAULT_TRANSFORM_GROUP'),('CURRENT_PATH'),('CURRENT_ROLE'),('CURRENT_SCHEMA'), 
     ('CURRENT_TIME'),('CURRENT_TIMESTAMP'),('CURRENT_TRANSFORM_GROUP_FOR_TYPE'),('CURRENT_USER'),('CURSOR'),('CYCLE'), 
     ('DATA'),('DATABASE'),('DATE'),('DAY'),('DBCC'),('DEALLOCATE'),('DEC'),('DECIMAL'),('DECLARE'), 
     ('DEFAULT'),('DEFERRABLE'),('DEFERRED'),('DELETE'),('DENY'),('DEPTH'),('DEREF'),('DESC'),('DESCRIBE'), 
     ('DESCRIPTOR'),('DESTROY'),('DESTRUCTOR'),('DETERMINISTIC'),('DIAGNOSTICS'),('DICTIONARY'),('DISCONNECT'),('DISK'), 
     ('DISTINCT'),('DISTRIBUTED'),('DOMAIN'),('DOUBLE'),('DROP'),('DUMP'),('DYNAMIC'),('EACH'),('ELEMENT'), 
     ('ELSE'),('END'),('END-EXEC'),('EQUALS'),('ERRLVL'),('ESCAPE'),('EVERY'),('EXCEPT'), 
     ('EXCEPTION'),('EXEC'),('EXECUTE'),('EXISTS'),('EXIT'),('EXTERNAL'), 
     ('EXTRACT'),('FALSE'),('FETCH'),('FILE'),('FILLFACTOR'),('FILTER'),('FIRST'),('FLOAT'),('FOR'), 
     ('FOREIGN'),('FORTRAN'),('FOUND'),('FREE'),('FREETEXT'),('FREETEXTTABLE'),('FROM'),('FULL'),('FULLTEXTTABLE'),('FUNCTION'), 
     ('FUSION'),('GENERAL'),('GET'),('GLOBAL'),('GO'),('GOTO'),('GRANT'),('GROUP'),('GROUPING'),('HAVING'), 
     ('HOLD'),('HOLDLOCK'),('HOST'),('HOUR'),('IDENTITY'),('IDENTITY_INSERT'),('IDENTITYCOL'),('IF'), 
     ('IGNORE'),('IMMEDIATE'),('IN'),('INCLUDE'),('INDEX'),('INDICATOR'),('INITIALIZE'),('INITIALLY'),('INNER'),('INOUT'), 
     ('INPUT'),('INSENSITIVE'),('INSERT'),('INT'),('INTEGER'),('INTERSECT'),('INTERSECTION'), 
     ('INTERVAL'),('INTO'),('IS'),('ISOLATION'),('ITERATE'),('JOIN'),('KEY'),('KILL'),('LANGUAGE'), 
     ('LARGE'),('LAST'),('LATERAL'),('LEADING'),('LEFT'),('LESS'),('LEVEL'),('LIKE'),('LIKE_REGEX'),('LIMIT'),('LINENO'),('LN'), 
     ('LOAD'),('LOCAL'),('LOCALTIME'),('LOCALTIMESTAMP'),('LOCATOR'),('LOWER'), 
     ('MAP'),('MATCH'),('MAX'),('MEMBER'),('MERGE'),('METHOD'),('MIN'),('MINUTE'),('MOD'),('MODIFIES'),('MODIFY'),('MODULE'), 
     ('MONTH'),('MULTISET'),('NAMES'),('NATIONAL'),('NATURAL'),('NCHAR'),('NCLOB'),('NEW'),('NEXT'),('NO'),('NOCHECK'), 
     ('NONCLUSTERED'),('NONE'),('NORMALIZE'),('NOT'),('NULL'),('NULLIF'), 
     ('NUMERIC'),('OBJECT'),('OCCURRENCES_REGEX'),('OCTET_LENGTH'),('OF'),('OFF'),('OFFSETS'),('OLD'),('ON'),('ONLY'),('OPEN'), 
     ('OPENDATASOURCE'),('OPENQUERY'),('OPENROWSET'),('OPENXML'),('OPERATION'),('OPTION'),('OR'), 
     ('ORDER'),('ORDINALITY'),('OUT'),('OUTER'),('OUTPUT'), 
     ('OVER'),('OVERLAPS'),('OVERLAY'),('PAD'),('PARAMETER'), 
     ('PARAMETERS'),('PARTIAL'),('PARTITION'),('PASCAL'),('PATH'), 
     ('PERCENT'),('PERCENT_RANK'),('PERCENTILE_CONT'),('PERCENTILE_DISC'),('PIVOT'),('PLAN'),('POSITION'), 
     ('POSITION_REGEX'),('POSTFIX'),('PRECISION'),('PREFIX'),('PREORDER'),('PREPARE'),('PRESERVE'), 
     ('PRIMARY'),('PRINT'),('PRIOR'), 
     ('PRIVILEGES'),('PROC'),('PROCEDURE'),('PUBLIC'),('RAISERROR'), 
     ('RANGE'),('READ'),('READS'),('READTEXT'), 
     ('REAL'),('RECONFIGURE'),('RECURSIVE'),('REF'),('REFERENCES'),('REFERENCING'),('REGR_AVGX'),('REGR_AVGY'),('REGR_COUNT'), 
     ('REGR_INTERCEPT'),('REGR_R2'),('REGR_SLOPE'),('REGR_SXX'),('REGR_SXY'),('REGR_SYY'),('RELATIVE'), 
     ('RELEASE'),('REPLICATION'),('RESTORE'),('RESTRICT'), 
     ('RESULT'),('RETURN'),('RETURNS'),('REVERT'), 
     ('REVOKE'),('RIGHT'),('ROLE'),('ROLLBACK'),('ROLLUP'),('ROUTINE'), 
     ('ROW'),('ROWCOUNT'),('ROWGUIDCOL'),('ROWS'),('RULE'),('SAVE'),('SAVEPOINT'),('SCHEMA'),('SCOPE'), 
     ('SCROLL'),('SEARCH'),('SECOND'),('SECTION'),('SECURITYAUDIT'),('SELECT'),('SENSITIVE'), 
     ('SEQUENCE'),('SESSION'),('SESSION_USER'), 
     ('SET'),('SETS'),('SETUSER'),('SHUTDOWN'),('SIMILAR'),('SIZE'),('SMALLINT'),('SOME'), 
     ('SPACE'),('SPECIFIC'),('SPECIFICTYPE'),('SQL'),('SQLCA'),('SQLCODE'),('SQLERROR'), 
     ('SQLEXCEPTION'),('SQLSTATE'),('SQLWARNING'),('START'),('STATE'),('STATEMENT'), 
     ('STATIC'),('STATISTICS'),('STDDEV_POP'),('STDDEV_SAMP'),('STRUCTURE'),('SUBMULTISET'), 
     ('SUBSTRING'),('SUBSTRING_REGEX'),('SUM'),('SYMMETRIC'),('SYSTEM'),('SYSTEM_USER'), 
     ('TABLE'),('TABLESAMPLE'),('TEMPORARY'),('TERMINATE'),('TEXTSIZE'),('THAN'),('THEN'),('TIME'), 
     ('TIMESTAMP'),('TIMEZONE_HOUR'),('TIMEZONE_MINUTE'),('TO'),('TOP'), 
     ('TRAILING'),('TRAN'),('TRANSACTION'),('TRANSLATE'),('TRANSLATE_REGEX'),('TRANSLATION'), 
     ('TREAT'),('TRIGGER'),('TRIM'),('TRUE'),('TRUNCATE'),('TSEQUAL'), 
     ('UESCAPE'),('UNDER'),('UNION'),('UNIQUE'),('UNKNOWN'),('UNNEST'),('UNPIVOT'),('UPDATE'),('UPDATETEXT'), 
     ('UPPER'),('USAGE'),('USE'),('USER'),('USING'),('VALUE'), 
     ('VALUES'),('VAR_POP'),('VAR_SAMP'),('VARCHAR'),('VARIABLE'), 
     ('VARYING'),('VIEW'),('WAITFOR'),('WHEN'),('WHENEVER'), 
     ('WHERE'),('WHILE'),('WIDTH_BUCKET'),('WINDOW'),('WITH'),('WITHIN'),('WITHOUT'),('WORK'), 
     ('WRITE'),('WRITETEXT'),('XMLAGG'),('XMLATTRIBUTES'), 
     ('XMLBINARY'),('XMLCAST'),('XMLCOMMENT'),('XMLCONCAT'),('XMLDOCUMENT'), 
     ('XMLELEMENT'),('XMLEXISTS'),('XMLFOREST'),('XMLITERATE'),('XMLNAMESPACES'), 
     ('XMLPARSE'),('XMLPI'),('XMLQUERY'),('XMLSERIALIZE'),('XMLTABLE'), 
     ('XMLTEXT'),('XMLVALIDATE'),('YEAR'),('ZONE') 
) AS t(keyword) 
+0

Спасибо! Это хороший подход. Единственным недостатком этой команды SELECT является то, что я должен обновить приложение, если только одно единственное ключевое слово было добавлено или удалено более новой версией SQL Server. Но я думаю, что обновление ключевых слов довольно редко. Я прав? –

+0

@ My-Name-Is, да, вы абсолютно правы. Но поскольку новые версии сервера имеют большие интервалы, и я могу сказать, что старый синтаксис всегда поддерживается новыми версиями :) – Devart

0

Я не могу ручаться за ее достоверность, ни полноту, но я оценил в течение многих лет Питы Фрайтаг «SQL зарезервированных слов Checker» как быстрая и удобная ссылка (и с учетом проблем с совместимостью): http://www.petefreitag.com/tools/sql_reserved_words_checker/

+0

Приятная утилита, но с этим я могу запросить только одно ключевое слово. В моем приложении мне нужен полный список ключевых слов reserverd. –

Смежные вопросы