document/常用SQL/系统相关/表详细信息2.sql
2024-06-30 04:47:39 +08:00

33 lines
1.7 KiB
SQL

SELECT
t.TABLE_NAME AS [TableName],
c.COLUMN_NAME AS [ColumnName],
c.ORDINAL_POSITION AS [ColumnIndex],
CAST(ISNULL(ep.[value], '') AS NVARCHAR(MAX)) AS [ColumnDescription],
c.DATA_TYPE AS [ColumnType],
CAST(CASE WHEN c.CHARACTER_MAXIMUM_LENGTH IS NULL THEN c.NUMERIC_PRECISION ELSE c.CHARACTER_MAXIMUM_LENGTH END AS NVARCHAR(10)) AS [ColumnSize],
CAST(CASE WHEN EXISTS (
SELECT 1 FROM HissAI_Res.INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
INNER JOIN HissAI_Res.INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu ON tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME AND tc.TABLE_SCHEMA = kcu.TABLE_SCHEMA AND tc.TABLE_NAME = kcu.TABLE_NAME
WHERE tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
AND kcu.TABLE_SCHEMA = t.TABLE_SCHEMA
AND kcu.TABLE_NAME = t.TABLE_NAME
AND kcu.COLUMN_NAME = c.COLUMN_NAME
) THEN 1 ELSE 0 END AS BIT) AS [ColumnIsPK],
CAST(CASE WHEN c.IS_NULLABLE = 'YES' THEN 1 ELSE 0 END AS BIT) AS [ColumnIsNull],
CAST(COLUMN_DEFAULT AS NVARCHAR(MAX)) AS [ColumnDefault]
FROM
HissAI_Res.INFORMATION_SCHEMA.TABLES t
INNER JOIN
HissAI_Res.INFORMATION_SCHEMA.COLUMNS c ON t.TABLE_SCHEMA = c.TABLE_SCHEMA AND t.TABLE_NAME = c.TABLE_NAME
LEFT OUTER JOIN
HissAI_Res.sys.columns sc ON t.TABLE_SCHEMA + '.' + t.TABLE_NAME = OBJECT_SCHEMA_NAME(sc.object_id) + '.' + OBJECT_NAME(sc.object_id) AND c.COLUMN_NAME = sc.name
LEFT OUTER JOIN
HissAI_Res.sys.extended_properties ep ON t.TABLE_SCHEMA + '.' + t.TABLE_NAME = OBJECT_SCHEMA_NAME(ep.major_id) + '.' + OBJECT_NAME(ep.major_id) AND sc.column_id = ep.minor_id AND ep.name = 'MS_Description'
WHERE
t.TABLE_NAME = 'T_App_Config' and (ep.class=1 or ep.class is null )
ORDER BY
c.ORDINAL_POSITION ASC;