创建新的 Microsoft SQL Server Compact 表。

CREATE TABLE table_name ( { < column_definition > | < table_constraint > } [ ,...n ] ) < column_definition > ::= { column_name data_type } [ { DEFAULT constant_expression | [ IDENTITY [ ( seed , increment ) ] ] } ] [ ROWGUIDCOL ] [ < column_constraint > [ ...n ] ] < column_constraint > ::= [ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ] | [ PRIMARY KEY | UNIQUE ] | REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] } < table_constraint > ::= [ CONSTRAINT constraint_name ] { [ { PRIMARY KEY | UNIQUE } { ( column [ ,...n ] ) } ] | FOREIGN KEY ( column [ ,...n ] ) REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] }


列定义
在创建表时,必须指定至少一个列定义。
约束
-
PRIMARY KEY 约束
-
一个表只能包含一个 PRIMARY KEY 约束。
-
每个 PRIMARY KEY 都生成一个索引。
-
在 PRIMARY KEY 约束内定义的所有列都必须定义为 NOT NULL。如果未指定为空性,加入 PRIMARY KEY 约束的所有列的为空性都将设置为 NOT NULL。
-
-
UNIQUE 约束
-
每个 UNIQUE 约束都生成一个索引。
-
-
FOREIGN KEY 约束
-
如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在;否则,将返回违反外键约束的错误消息。
-
FOREIGN KEY 约束可以引用同一表中的其他列,且引用为自我引用。但是,FOREIGN KEY 约束不能用于创建自我引用或循环的 FOREIGN KEY 约束。
-
列级 FOREIGN KEY 约束的 REFERENCES 子句仅能列出一个引用列。该列必须与定义约束的列具有相同的数据类型。
-
表级 FOREIGN KEY 约束的 REFERENCES 子句中引用列的数目必须与约束列的列表中的列数相同。每个引用列的数据类型也必须与列的列表中相应列的数据类型相同。
-
FOREIGN KEY 约束只能引用被引用表的 PRIMARY KEY 或 UNIQUE 约束中的列。FOREIGN KEY 约束不能引用唯一索引。
-
-
其他约束信息
-
为约束创建的索引不能用 DROP INDEX 语句删除。必须用 ALTER TABLE DROP CONSTRAINT 语句删除约束。
-
约束名必须符合标识符规则,但其名称的首字符不能以数字号 (#) 开头。如果没有提供 CONSTRAINT 关键字和constraint_name,将为约束分配系统生成的名称。
-
在 INSERT、UPDATE 或DELETE 语句中违反约束时,将终止该语句。
-
DEFAULT 定义
每列只能有一个 DEFAULT 定义。这可以包含常量值或常量函数。
表定义中的为空性规则
列的为空性用于确定在该列中是否允许以空值 (NULL) 作为其数据。NULL 不是零或空白。它表示没有输入任何内容,或提供了一个显式 NULL 值,通常表示该值未知或不适用。

下面的示例用于显示如何完成下列各项操作:
-
使用标识列作为 PRIMARY KEY 创建具有两列的表。
-
使用 PRIMARY KEY 约束创建具有一列的表。
-
创建一个表,使其中的一个列引用另一个表中的列。
CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))
CREATE TABLE MyCustomers2 (CustID int CONSTRAINT pkCustId PRIMARY KEY)
CREATE TABLE MyOrders (OrderID int, CustID int REFERENCES MyCustomers(CustID))
http://msdn.microsoft.com/zh-cn/library/ms173393%28SQL.110%29.aspx