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

CREATE TABLE 語法完整參考 (Visual FoxPro / SQL Server 兼容說明)

     編輯:關於SqlServer

語法骨架

CREATE TABLE [DBF] TableName1 [NAME LongTableName] [FREE]
(
    FieldName1 FieldType [(nFieldWidth [, nPrecision])]
    [NULL | NOT NULL]
    [CHECK lExpression1 [ERROR cMessageText1]]
    [DEFAULT eExpression1]
    [PRIMARY KEY | UNIQUE]
    [REFERENCES TableName2 [TAG TagName1]]
    [NOCPTRANS]
    [, FieldName2 ...]
    [, PRIMARY KEY eExpression2 TAG TagName2 | UNIQUE eExpression3 TAG TagName3]
    [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP] REFERENCES TableName3 [TAG TagName5]]
    [, CHECK lExpression2 [ERROR cMessageText2]]
)
| FROM ARRAY ArrayName

關鍵字詳細說明

子句說明
DBF / TABLE同義,建立自由資料表或資料庫資料表。
NAME LongTableName長檔名 (最長 128 字元),僅在資料庫開啟時有效,儲存於 DBC 中。
FREE不加入目前開啟資料庫,建立為自由資料表。
FieldType單一字元型別代碼 (C=字串, N=數值, D=日期, T=日期時間, L=邏輯, M=備忘錄, G=General, Y=Currency, I=整數, B=雙精度, V=Varbinary, Q=Varbinary, @=Timestamp, +=AutoInc, O=Object, K=Blob)。部份型別需指定寬度/精度。
NULL / NOT NULL明確指定欄位是否允許空值。允許 NULL 的表格最多 254 欄位,否則 255 欄位。
CHECK ... ERROR資料列層級約束,違反時拋出自訂錯誤訊息。
DEFAULT預設值運算式,可為常數、函數、系統變數。
PRIMARY KEY / UNIQUE欄位層級主鍵/唯一約束,自動建立索引標籤。
REFERENCES ... TAG欄位層級外來鍵,參考父表主鍵/候選鍵索引標籤。
NOCPTRANS字串欄位不進行程式碼頁轉換 (二進位儲存)。
表格層級約束PRIMARY KEY eExpression TAG TagName、UNIQUE ...、FOREIGN KEY ... REFERENCES ...、CHECK ... 可跨欄位定義複合鍵或複雜條件。
FROM ARRAY依陣列結構快速建立資料表 (欄位名、型別、寬度取自陣列)。

型別代碼速查表

C(n)      字串 (1~254)          N(n[,p])  數值 (總位數 1~20, 精度 0~p)
D         日期 (YYYYMMDD)       T         日期時間 (YYYYMMDD hh:mm:ss)
L         邏輯 (.T./.F.)        M         備忘錄 (可變長度文字/二進位)
G         General (OLE 物件)    Y         Currency (8 位整數, 4 位小數)
I         整數 (4 位元組)       B         雙精度浮點數
V(n)      Varbinary (1~254)     Q(n)      Varbinary (同上, 別名)
@         Timestamp (8 位元組)  +         AutoInc (自動遞增整數)
O         物件參考              K         Blob (大型二進位物件)

SQL Server 開發者注意事項

  • 上述語法為 Visual FoxPro (VFP) CREATE TABLE,非 T-SQL。SQL Server 使用 CREATE TABLE 但型別系統、約束語法、索引建立方式迥異。
  • VFP 為檔案基礎、無交易日誌、鎖定機制不同;遷移至 SQL Server 時需對應型別 (如 N(10,2) → DECIMAL(10,2)、M → NVARCHAR(MAX)/VARBINARY(MAX)、+ → IDENTITY(1,1))。
  • VFP 的 TAG 對應 SQL Server 索引名稱;REFERENCES 對應 FOREIGN KEY;CHECK 語法相似但 VFP 支援 ERROR 訊息自訂。

典型遷移範例

-- VFP
CREATE TABLE Customers (
    CustID    I        PRIMARY KEY,
    Name      C(50)    NOT NULL,
    CreditLim Y        DEFAULT 0,
    Region    C(20)    REFERENCES Regions TAG RegionPK
)

-- SQL Server (T-SQL)
CREATE TABLE dbo.Customers (
    CustID      INT           NOT NULL IDENTITY(1,1) PRIMARY KEY,
    Name        NVARCHAR(50)  NOT NULL,
    CreditLim   MONEY         NOT NULL DEFAULT (0),
    RegionCode  NVARCHAR(20)  NULL,
    CONSTRAINT FK_Customers_Regions FOREIGN KEY (RegionCode)
        REFERENCES dbo.Regions (RegionCode)
);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved