2011-02-09 38 views
5

是否有一個簡單查詢來返回特定列是否允許空值?
我想將其更改爲數據庫升級腳本的一部分。SQL:測試列是否具有「無空值」屬性

或者,只是改變它,即使它已經設置好了嗎?

編輯:這是SQL Server(需要支持2000或更高版本)

+2

必須使用,如果你想回答你使用的是實際的RDBMS標記這一點。在現實世界中對數據庫的反思並不是很好的標準化。 – 2011-02-09 17:29:06

+0

你在使用哪個數據庫? – 2011-02-09 17:29:11

回答

16

任何特定的RDBMS?

在SQL Server

use master 

SELECT COLUMNPROPERTY(OBJECT_ID('dbo.spt_values'),'number','AllowsNull') 

或(更標準)

select IS_NULLABLE 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_SCHEMA='dbo' 
     AND TABLE_NAME='spt_values' 
     AND COLUMN_NAME='number'