mysql、oracle、sqlserver根據對應的表查詢表中的所有欄位名稱、型別、別名、長度等資訊
阿新 • • 發佈:2019-01-26
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' - - 此處傳入表明
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' - - 此處傳入表明