/Dev/xCoder/xCoder.DB2Project/Resource/SQLCE/Columns.sql

http://github.com/syncforge/xCoder · SQL · 72 lines · 66 code · 3 blank · 3 comment · 0 complexity · 441bf175687f5a4a95ef7ed84d0b19ad MD5 · raw file

  1. SELECT
  2. --TBL.TABLE_SCHEMA,
  3. TBL.TABLE_TYPE,
  4. COL.TABLE_NAME,
  5. COL.ORDINAL_POSITION,
  6. COL.COLUMN_NAME,
  7. COL.DATA_TYPE,
  8. COL.IS_NULLABLE,
  9. ISNULL(COL.CHARACTER_MAXIMUM_LENGTH,-1) AS MAXIMUM_LENGTH,
  10. --COL.TABLE_CATALOG,
  11. (CASE KEYUSG.CONSTRAINT_TYPE WHEN 'PRIMARY KEY' THEN 'YES' ELSE 'NO' END) PRIMARY_KEY,
  12. (CASE KEYUSG.CONSTRAINT_TYPE WHEN 'FOREIGN KEY' THEN 'YES' ELSE 'NO' END) FOREIGN_KEY,
  13. FK.FOREIGN_TALBE,
  14. FK.FOREIGN_COLUMN,
  15. KEYUSG.CONSTRAINT_NAME
  16. FROM
  17. INFORMATION_SCHEMA.COLUMNS COL
  18. JOIN
  19. INFORMATION_SCHEMA.TABLES TBL
  20. ON
  21. COL.TABLE_NAME=TBL.TABLE_NAME
  22. LEFT JOIN
  23. (
  24. SELECT
  25. USG.CONSTRAINT_NAME,
  26. USG.TABLE_NAME,
  27. USG.COLUMN_NAME,
  28. CONST.CONSTRAINT_TYPE
  29. FROM
  30. INFORMATION_SCHEMA.KEY_COLUMN_USAGE USG
  31. JOIN
  32. INFORMATION_SCHEMA.TABLE_CONSTRAINTS CONST
  33. ON
  34. USG.TABLE_NAME=CONST.TABLE_NAME
  35. AND
  36. USG.CONSTRAINT_NAME = CONST.CONSTRAINT_NAME
  37. )
  38. AS KEYUSG
  39. ON
  40. COL.TABLE_NAME=KEYUSG.TABLE_NAME
  41. AND
  42. COL.COLUMN_NAME=KEYUSG.COLUMN_NAME
  43. ---FOREIGHTKEYS
  44. LEFT OUTER JOIN
  45. (
  46. SELECT
  47. USAGE.TABLE_NAME,
  48. USAGE.COLUMN_NAME,
  49. UNI_USAGE.TABLE_NAME FOREIGN_TALBE,
  50. UNI_USAGE.COLUMN_NAME FOREIGN_COLUMN,
  51. CONST.CONSTRAINT_NAME,
  52. UNIQUE_CONSTRAINT_NAME
  53. FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS CONST
  54. JOIN
  55. INFORMATION_SCHEMA.KEY_COLUMN_USAGE USAGE
  56. ON
  57. USAGE.CONSTRAINT_NAME=CONST.CONSTRAINT_NAME
  58. JOIN
  59. INFORMATION_SCHEMA.KEY_COLUMN_USAGE UNI_USAGE
  60. ON
  61. UNI_USAGE.CONSTRAINT_NAME=CONST.UNIQUE_CONSTRAINT_NAME
  62. )
  63. AS FK
  64. ON
  65. FK.TABLE_NAME=COL.TABLE_NAME
  66. AND
  67. FK.COLUMN_NAME = COL.COLUMN_NAME
  68. AND
  69. KEYUSG.CONSTRAINT_NAME=FK.CONSTRAINT_NAME