2013-03-04 63 views
1

我想選擇INFORMATION_SCHEMA.COLUMNS以獲取數字列的大小。我可以看到在Microsoft SQL Server Management Studio中的屬性中設置了大小,但INFORMATION_SCHEMA.COLUMNS沒有此信息。是否有一些其他表可以獲取數字列的這些信息?對於數字類型,Microsoft SQL Server INFORMATION_SCHEMA.COLUMNS CHARACTER_MAXIMUM_LENGTH爲NULL

例如,我有一列定義爲INT,大小爲4,但INFORMATION_SCHEMA.COLUMNS CHARACTER_MAXIMUM_LENGTHNULL

如何在select語句中獲取此大小?

+0

嘗試使用'sys.columns'代替 - 在這種情況下,'INT'列顯示'max_length'爲4 – 2013-03-04 19:39:21

回答

0

如果你要堅持INFORMATION_SCHEMA.COLUMNS那麼你將不得不從數據類型的基於整數的列來推斷:

SELECT COLUMN_NAME, 
    DATA_TYPE, 
    COALESCE(CHARACTER_MAXIMUM_LENGTH, 
     (Select Length From sys.systypes s Where s.name = c.DATA_TYPE) 
     ) As Max_Len 
FROM INFORMATION_SCHEMA.COLUMNS c 

你必須做一些額外的工作,以一些其他的類型雖然(如NUMERIC,DECIMAL等)。

相關問題