CREATE TABLE
创建新表。语法
CREATE TABLE
    [ database_name.[ owner ] .| owner.] table_name
    ( { < column_definition >
        | column_name AS computed_column_expression
        | < table_constraint > ::= [ CONSTRAINT constraint_name ] }            | [ { PRIMARY KEY | UNIQUE } [ ,...n ]
    ) [ ON { filegroup | DEFAULT } ] 
[ TEXTIMAGE_ON { filegroup | DEFAULT } ] < column_definition > ::= { column_name data_type }
    [ COLLATE < collation_name > ]
    [ [ DEFAULT constant_expression ]
        | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]
    ] 
    [ ROWGUIDCOL]
    [ < column_constraint > ] [ ...n ] < column_constraint > ::= [ CONSTRAINT constraint_name ]
    { [ NULL | NOT NULL ]
        | [ { PRIMARY KEY | UNIQUE }
            [ CLUSTERED | NONCLUSTERED ]
            [ WITH FILLFACTOR = fillfactor ]
            [ON {filegroup | DEFAULT} ] ]
        ] 
        | [ [ FOREIGN KEY ]
            REFERENCES ref_table [ ( ref_column ) ]
            [ ON DELETE { CASCADE | NO ACTION } ]
            [ ON UPDATE { CASCADE | NO ACTION } ]
            [ NOT FOR REPLICATION ]
        ] 
        | CHECK [ NOT FOR REPLICATION ]
        ( logical_expression ) 
    } < table_constraint > ::= [ CONSTRAINT constraint_name ]
    { [ { PRIMARY KEY | UNIQUE }
        [ CLUSTERED | NONCLUSTERED ]
        { ( column [ ASC | DESC ] [ ,...n ] ) }
        [ WITH FILLFACTOR = fillfactor ]
        [ ON { filegroup | DEFAULT } ]
    ] 
    | FOREIGN KEY
        [ ( column [ ,...n ] ) ]
        REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
        [ ON DELETE { CASCADE | NO ACTION } ]
        [ ON UPDATE { CASCADE | NO ACTION } ]
        [ NOT FOR REPLICATION ]
    | CHECK [ NOT FOR REPLICATION ]
        ( search_conditions ) 
    } 参数
database_name是要在其中创建表的数据库名称。database_name 必须是现有数据库的名称。如果不指定数据库,database_name 默认为当前数据库。当前连接的登录必须在 database_name 所指定的数据库中有关联的现有用户 ID,而该用户 ID 必须具有创建表的权限。owner是新表所有者的用户 ID 名,owner 必须是 database_name 所指定的数据库中的现有用户 ID,owner 默认为与 database_name 所指定的数据库中的当前连接相关联的用户 ID。如果 CREATE TABLE 语句由 sysadmin 固定服务器角色成员或 database_name 所指定的数据库中的 db_dbowner 或 db_ddladmin 固定数据库角色成员执行,则 owner 可以指定与当前连接的登录相关联的用户 ID 以外的其它用户 ID。如果与执行 CREATE TABLE 语句的登录相关联的用户 ID 仅具有创建表的权限,则 owner 必须指定与当前登录相关联的用户 ID。sysadmin 固定服务器角色成员或别名为 dbo 用户的登录与用户 ID dbo 相关联;因此,由这些用户创建的表的默认所有者为 dbo。不是由上述两种角色的登录创建的表所有者默认为与该登录相关联的用户 ID。table_name是新表的名称。表名必须符合标识符规则。数据库中的 owner.table_name 组合必须唯一。table_name 最多可包含 128 个字符,但本地临时表的表名(名称前有一个编号符 #)最多只能包含 116 个字符。column_name是表中的列名。列名必须符合标识符规则,并且在表内唯一。以 timestamp 数据类型创建的列可以省略 column_name。如果不指定 column_name,timestamp 列的名称默认为 timestamp。computed_column_expression是定义计算列值的表达式。计算列是物理上并不存储在表中的虚拟列。计算列由同一表中的其它列通过表达式计算得到。例如,计算列可以这样定义:cost AS price * qty。表达式可以是非计算列的列名、常量、函数、变量,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。计算列可用于选择列表、WHERE 子句、ORDER BY 子句或任何其它可使用常规表达式的位置,但下列情况除外: 计算列不能用作 DEFAULT 或 FOREIGN KEY 约束定义,也不能与 NOT NULL 约束定义一起使用。但是,如果计算列由具有确定性的表达式定义,并且索引列中允许计算结果的数据类型,则可将该列用作索引中的键列,或用作 PRIMARY KEY 或 UNIQUE 约束的一部分。 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~