1. 程式人生 > >mysql、oracle、sqlserver根據對應的表查詢表中的所有欄位名稱、型別、別名、長度等資訊

mysql、oracle、sqlserver根據對應的表查詢表中的所有欄位名稱、型別、別名、長度等資訊

SELECT
 t.COLUMN_NAME AS NAME,
 (
  CASE
  WHEN t.IS_NULLABLE = 'YES' THEN
   '1'
  ELSE
   '0'
  END
 ) AS isNull,
 (t.ORDINAL_POSITION * 10) AS sort,
 isnull(g.[ VALUE ], '') AS comments,
 (
  t.DATA_TYPE + CASE
  WHEN t.DATA_TYPE IN (
   'varchar',
   'char',
   'nvarchar',
   'nchar'
  ) THEN
   '(' + CONVERT (
    VARCHAR,
    t.CHARACTER_MAXIMUM_LENGTH
   ) + ')'
  WHEN t.DATA_TYPE IN ('numeric', 'decimal') THEN
   '(' + CONVERT (
    VARCHAR,
    t.NUMERIC_PRECISION_RADIX
   ) + ',' + CONVERT (
    VARCHAR,
    ISNULL(t.NUMERIC_SCALE, 0)
   ) + ')'
  ELSE
   ''
  END
 ) AS jdbcType
FROM
 INFORMATION_SCHEMA. COLUMNS t
INNER JOIN sys.sysobjects o ON t.TABLE_NAME = o. NAME
AND SCHEMA_NAME (o.uid) = t.TABLE_SCHEMA
LEFT JOIN sys.extended_properties g ON o.id = g.major_id
AND t.ORDINAL_POSITION = g.minor_id
AND g. NAME = 'MS_Description'
WHERE
 t.TABLE_SCHEMA = (SCHEMA_NAME())
AND t.TABLE_NAME  = 'db_movie'   - - 此處傳入表明