首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 建立資料表完整指南:欄位屬性、IDENTITY 與 CREATE TABLE 語法

     編輯:關於SqlServer

欄位核心屬性

資料表由「列(欄位定義)」與「行(資料)」組成,建立表即定義欄位。除名稱與資料類型外,關鍵屬性如下:

1. NULL / NOT NULL

  • NULL:允許插入時省略該欄位值
  • NOT NULL:必須提供值(除非有 DEFAULT)
  • SQL Server 預設為 NOT NULL
  • 修改資料庫預設行為:
    • SET ANSI_NULL_DFLT_ON / OFF
    • sp_dboption 'dbname', 'ANSI null default', true/false

2. IDENTITY(自動編號)

  • 系統自動產生唯一數值,常用作主鍵
  • 可指定 SEED (初始值) 與 INCREMENT (遞增值),預設皆為 1
  • 適用型別:INT, SMALLINT, TINYINT, DECIMAL(p,0), NUMERIC(p,0)
  • 限制:同一欄位不可同時擁有 NULL 與 IDENTITY 屬性

CREATE TABLE 完整語法

CREATE TABLE [database_name.[owner]. | owner.] table_name
(
    { column_definition | column_name AS computed_column_expression } [ ,...n ]
)
[ ON { filegroup | DEFAULT } ]
[ TEXTIMAGE_ON { filegroup | DEFAULT } ]

column_definition 細項

column_name data_type
    [ DEFAULT constant_expression ]
    | [ IDENTITY [ (seed, increment) ] [ NOT FOR REPLICATION ] ]
    [ ROWGUIDCOL ]
    [ COLLATE collation_name ]
    [ column_constraint ] [ ...n ]

關鍵參數說明

參數說明
database_name指定資料庫,省略則使用目前資料庫
owner資料庫擁有者使用者名稱
DEFAULT欄位預設值(常數運算式)
ROWGUIDCOL標記為全域唯一識別欄(僅限 uniqueidentifier 型別)
COLLATE指定定序(排序/比較規則)
ON filegroup指定資料儲存檔案群組
TEXTIMAGE_ON指定 TEXT/IMAGE 資料儲存檔案群組

實務建議

  • 明確宣告 NOT NULL 避免隱性 NULL 問題
  • 主鍵欄位優先使用 IDENTITY 簡化應用邏輯
  • 大型資料表規劃檔案群組分散 I/O 壓力
  • 善用 DEFAULT 減少應用層判斷
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved