最多 200 万多个表。表的列数为 1-1024 个。
CREATE TABLE [ database_name.[owner].| owner. ] table_name ( { <column_definition> | column_name AS computed_column_expression | <table_constraint> } [,...] ) [ ON { filegroup | DEFAULT } ] [ TEXTIMAGE_ON { filegroup | DEFAULT } ] |
参数 | 意义 |
---|---|
computed_column_expression | 将表达式的值作为列值 |
<column_definition> ::= { column_name data_type } [ COLLATE <collation_name> ] [ [ DEFAULT constant_expression ] | [ IDENTITY [ (seed, increment) [ NOT FOR REPLICATION ] ] ] } [ ROWGUIDCOL ] [ <column_constraint> ] [ ... ] |
参数 | 意义 |
---|---|
column_name | 自定义的字段名 |
collation_name | 排序规则 |
constant_expression | 设置列的默认值表达式 |
IDENTITY | 设置列为自动编号,数字型字段 |
seed | 自动编号起始值,默认为 1 |
increment | 自动编号间隔值,默认为 1 |
NOT FOR REPLICATION | 从其他表中复制的数据插入到表中时不发生作用 |
ROWGUIDCOL | 设置列为全局唯一标识符列 |
参数 | 意义 |
---|---|
constraint_name | 自定义的约束名,可选 |
NULL | 允许空值 |
PRIMARY KEY | 主键约束(唯一值、每表最多一个) |
UNIQUE | 唯一值约束 |
CLUSTERED | 聚簇索引(每表最多一个) |
fillfactor | 存储索引数据时每个索引页的充满程度 |
FOREIGN KEY | 外键约束 |
REFERENCES | 引用外部表字段 |
ON DELETE | 在父表中删除该行所引用的行时 |
ON UPDATE | 在父表中更改该行所引用的行时 |
CASCADE | 引用表中引用行也进行相应操作 |
NO ACTION | 使操作无法进行 |
CHECK | 检查约束,必须满足条件 |
NOT FOR REPLICATION | 是用于防止在复制所使用的分发过程中强制约束 |
logical_expression | 逻辑表达式,返回 TRUE 或 FALSE |
参数 | 意义 |
---|---|
主关键字约束:
CONSTRAINT constraint_name PRIMARY KEY [CLUSTERED | NONCLUSTERED] (column_name1[, ... ,column_name16]) |
外关键字约束:
CONSTRAINT constraint_name FOREIGN KEY(column_name1 [, ... ,column_name16]]) REFERENCES ref_table[( column_name1 [, ... ,column_name16] )] [ON DELETE { CASCADE | NO ACTION } ] [ON UPDATE { CASCADE | NO ACTION } ] [NOT FOR REPLICATION] |
唯一性约束:
CONSTRAINT constraint_name UNIQUE [CLUSTERED | NONCLUSTERED] (column_name1 [, ... ,column_name16]) |
参数 | 意义 |
---|---|
ref_table | 数据库,默认为当前 |
ON DELETE CASCADE | 母表记录删除时,子表关联记录也被删除 |
ON DELETE NO ACTION | 母表记录删除时,产生错误,默认 |
ON UPDATE ... | 母表记录更新时,同上 |