最多 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 ... | 母表记录更新时,同上 |