修改資料行屬性

資料表中的每個資料行都有一組屬性,例如名稱、資料類型、Null 值屬性和資料長度。資料行的完整屬性集合構成了資料表內的資料行定義。

資料行資料類型

只要資料行的現有資料本質上可轉換成新的資料類型,現有資料行的資料類型就可變更。如需詳細資訊,請參閱<ALTER TABLE (Transact-SQL)>。

資料行的資料長度

選取資料類型時,會自動定義長度。您只能對資料類型為 binary、char、nchar、varbinary、varchar 或 nvarchar 的資料行,增加或減少長度屬性。對於其他資料類型的資料行,其長度是從資料類型算出的,並無法變更。若新指定的長度小於原本的資料行長度,超過新長度的資料行數值將會被截掉,並且沒有任何警告。您無法變更利用 PRIMARY KEY 或 FOREIGN KEY 條件約束所定義的資料行長度。

資料行精確度

數值資料行的精確度是選定資料類型所使用的最大數字位數。非數值資料行的精確度一般都是指資料行的最大長度或定義的長度。

對於 decimal 及 numeric 以外的所有資料類型,都會自動定義有效位數。如果想要重新定義這些資料行所使用的最大位數,可以變更 decimal 及 numeric 資料類型的資料行有效位數。「SQL Server Database Engine」將禁止您變更這兩種資料類型以外之資料行的有效位數。

資料行小數位數

numeric 或 decimal 資料行的小數位數是小數點右邊的最大位數。當您選取資料類型時,資料行小數位數依預設會設為 0。對於含有近似浮點數的資料行而言,因其小數點右邊的位數不固定,所以未定義小數位數。如果想要重新定義可以出現在小數點右邊的位數,則可變更 numeric 或 decimal 資料行的小數位數。

資料行的 Null 屬性 (Nullability)

資料行可定義為允許或不允許 Null 值。在預設狀態下,資料行可允許 Null 值。若要將現有的資料行變更成不允許 Null 值,資料行中必須沒有任何一個 Null 值,並且未對該資料行建立任何索引。若在包含 Null 值的現有資料行中不允許使用 Null 值,請遵循下列步驟:

  1. 利用 DEFAULT 定義加入新的資料行,所插入的值會是有效值而非 NULL。

  2. 將資料從舊的現有資料行複製到新的資料行。

  3. 刪除原本的資料行。

除非現有資料行中定義了 PRIMARY KEY 條件約束,否則不允許 Null 值的資料行會變更為允許 Null 值。

疏鬆資料行和資料行集

疏鬆資料行是指資料表中大多數資料列都包含 Null 值的資料行。當資料行中百分之 20 到 40 的值將會是 NULL 時,請考慮使用疏鬆資料行。疏鬆資料行為已最佳化儲存位置來保存 Null 值的一般資料行。如需詳細資訊,請參閱<使用疏鬆資料行>。

使用疏鬆資料行的資料表可以指定資料行集,以傳回資料表中的所有疏鬆資料行。資料行集是不具類型的 XML 表示,可將資料表的所有疏鬆資料行結合到結構化輸出中。資料行集類似於計算資料行,因為資料行集並未實際儲存在資料表中。如需詳細資訊,請參閱<使用資料行集>。

若要設定資料行屬性

若要檢視資料行屬性

若要重新命名資料行