2009-07-11 78 views

回答

8

我沒有手頭SQL,但查詢是這樣的

SELECT * FROM information_schema.columns WHERE is_nullable = 'YES' 

一般來說,搜索此視圖參考標準,爲你的架構和數據庫結構的所有元數據信息;還有很多其他的信息(information_schema.tables,information_schema.constraints等)

+0

如果您的數據庫設置爲區分大小寫,可能應該是is_nullable ='YES'(大寫字母)以避免問題。 – 2009-07-11 11:28:13

0

那些只希望看到來自基表(不是視圖)的列的人應該加入INFORMATION_SCHEMA.TABLES。我也想排除系統表sysdiagrams

查詢

SELECT 
    c.TABLE_NAME, 
    COLUMN_NAME, 
    DATA_TYPE 
FROM 
    INFORMATION_SCHEMA.COLUMNS AS c 
    JOIN INFORMATION_SCHEMA.TABLES AS t ON t.TABLE_NAME = c.TABLE_NAME 
WHERE 
    is_nullable = 'YES' AND 
    TABLE_TYPE = 'BASE TABLE' AND 
    c.TABLE_NAME != 'sysdiagrams' 
ORDER BY 
    c.TABLE_NAME, 
    COLUMN_NAME 

如果您有跨架構或表目錄重複表名稱,您應該包括在加入以及這些領域,如在這裏的答案:

Differentiating tables and views in INFORMATION_SCHEMA.COLUMNS

相關問題