1. 程式人生 > >Sql Server 獲取所有的列

Sql Server 獲取所有的列

ide bsp sele cux 技術分享 from class convert prop

目標數據庫為微軟實力數據庫:AdventureWorks2012

1、Sql 語句:

SELECT DISTINCT
        c.TABLE_SCHEMA ,
        c.TABLE_NAME ,
        c.COLUMN_NAME ,
        c.DATA_TYPE ,
        c.IS_NULLABLE ,
        tc.CONSTRAINT_TYPE ,
        CONVERT(INT, c.NUMERIC_PRECISION) NUMERIC_PRECISION ,
        c.NUMERIC_SCALE ,
        c.CHARACTER_MAXIMUM_LENGTH ,
        c.ORDINAL_POSITION ,
        tc.CONSTRAINT_NAME ,
        
COLUMNPROPERTY(OBJECT_ID(c.TABLE_SCHEMA + . + c.TABLE_NAME), c.COLUMN_NAME, IsIdentity) ISIDENTITY , ( SELECT CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS x
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccux ON c.TABLE_NAME = ccux.TABLE_NAME AND c.COLUMN_NAME = ccux.COLUMN_NAME AND c.TABLE_SCHEMA = ccux.TABLE_SCHEMA
WHERE x.CONSTRAINT_TYPE = UNIQUE AND x.TABLE_SCHEMA = ccux.TABLE_SCHEMA AND x.CONSTRAINT_NAME = ccux.CONSTRAINT_NAME ) ISUNIQUE FROM INFORMATION_SCHEMA.COLUMNS c LEFT OUTER JOIN ( INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON ( tc.TABLE_SCHEMA = ccu.TABLE_SCHEMA AND tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME AND NOT tc.CONSTRAINT_TYPE IN ( CHECK, UNIQUE ) ) ) ON ( c.TABLE_SCHEMA = ccu.TABLE_SCHEMA AND c.TABLE_NAME = ccu.TABLE_NAME AND c.COLUMN_NAME = ccu.COLUMN_NAME ) ORDER BY c.TABLE_SCHEMA , c.TABLE_NAME , c.COLUMN_NAME;

2、結果:

技術分享

Sql Server 獲取所有的列