修改資料行屬性
資料表中的每個資料行都有一組屬性,例如名稱、資料類型、Null 值屬性和資料長度。資料行的完整屬性集合構成了資料表內的資料行定義。
資料行的資料長度
選取資料類型時,會自動定義長度。您只能對資料類型為 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 值,請遵循下列步驟:
利用 DEFAULT 定義加入新的資料行,所插入的值會是有效值而非 NULL。
將資料從舊的現有資料行複製到新的資料行。
刪除原本的資料行。
除非現有資料行中定義了 PRIMARY KEY 條件約束,否則不允許 Null 值的資料行會變更為允許 Null 值。