2013-05-27 173 views
2

我需要一個Oracle數據庫10g和SQL Server 2008保留關鍵字的列表。我的應用程序執行DDL語句,因此我需要驗證所輸入的表格,列名等與保留字的關係。我知道我可以複製和粘貼網站上的文字: Oracle 10gSQL Server 2008Oracle和SQL Server保留關鍵字

但我更喜歡SQL命令,以便可以動態加載關鍵字。對於Oracle存在的命令:

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 server中沒有等效的表或視圖。 – 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

@我的名字是的,是的,你是完全正確的。但是隨着服務器的新版本出現大量的時間間隔,我可以說舊版本的語法總是受到新版本的支持:) – Devart

0

我不能保證其公信力,也不完整,但我已經認識多年皮特弗賴塔格的「SQL保留字檢查」爲快速和方便的參考(並牢記交叉兼容性問題): http://www.petefreitag.com/tools/sql_reserved_words_checker/

+0

不錯的實用工具,但有了這個,我只能查詢單個關鍵字。在我的應用程序中,我需要保留關鍵字的完整列表。 –