2011-10-03 43 views
0

我對SQL查詢比較陌生。SQL-識別可爲空的值

我有我的SQL數據庫(1500)大量表的

我的問題如下:

我需要確定是從哪個有默認值的所有表空列?

我怎麼能去所有的表?

任何幫助或相同的教程也將非常有幫助。

謝謝

回答

2

您可以使用INFORMATION_SCHEMA得到這個數據,列「COLUMN_DEFAULT」和「IS_NULLABLE」會給你你所需要的。

SELECT * 
FROM information_schema.columns c with (Nolock) 
+0

你好,謝謝你。有一個問題。你爲什麼指定「with(nolock)」?我爲我的無知道歉,但我沒有得到它。 – JJunior

+0

這不是必需的,但它使查詢在檢索數據時鎖定表。 – msmucker0527

+0

謝謝你的解釋。 – JJunior

1

使用SQL Server的自描述的特點: -

SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
WHERE IS_NULLABLE = 'YES' 
OR COLUMN_DEFAULT IS NOT NULL 
1
SELECT 
    OBJECT_NAME(c.object_id), * 
FROM 
    sys.columns c 
    JOIN 
    sys.default_constrainst dc ON c.columnid = dc.parent_column_id AND c.object_id = dc.parent_object_id 
WHERE 
    c.is_nullable = 1