创建表的语法中{} 是什么意思?  
创建表的语法中<> 是什么意思?
创建表中  ::= 是什么意思?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 ]
    ) 

解决方案 »

  1.   

    zz联机文档下表列出了 Transact-SQL 参考的语法关系图中使用的约定,并进行了说明。约定  用于  
    UPPERCASE(大写) 
     Transact-SQL 关键字。
     
    italic
     用户提供的 Transact-SQL 语法的参数。
     
    bold(粗体)
     数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。
     
    下划线
     指示当语句中省略了包含带下划线的值的子句时应用的默认值。
     
    |(竖线)
     分隔括号或大括号中的语法项。只能选择其中一项。
     
    [ ](方括号)
     可选语法项。不要键入方括号。
     
    { }(大括号)
     必选语法项。不要键入大括号。
     
    [,...n]
     指示前面的项可以重复 n 次。每一项由逗号分隔。
     
    [...n]
     指示前面的项可以重复 n 次。每一项由空格分隔。
     
    [;]
     可选的 Transact-SQL 语句终止符。不要键入方括号。
     
    <label> ::=
     语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。可使用的语法块的每个位置由括在尖括号内的标签指示:<label>。
     
      

  2.   

    ....刚看到。建表建数据库的多看看帮助文档。二、数据库表存储结构
         在SQL Server中,每个数据库最多可创建20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度)。当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息。SQL Server对每个表中行的数量没有直接限制,但它受数据库存储空间的限制。每个数据库的最大空间1048516TB,所以一个表可用的最大空间为1048516TB减去数据库类系统表和其它数据库对象所占用的空间。
         SQL Server中的资料表分为永久表和临时表两种,永久表在创建后一直存储在数据库文件中,直至用户删除为止。而临时表则在用户退出或系统修复时被自动删除。临时表又分为局部临时表和全局临时表两种,局部临时表只能由创建它的用户使用,在该用户连接断开时,它被自动删除。全局临时表对系统当前的所有连接用户来说都是可用的,在使用它的最后一个会话结束时它被自动删除。在创建表时,系统根据当前表名来确定是创建临时表还是永久表,临时表的表名以#开头,除此之外为永久表。局部临时表表名开头包含一个#号,而全局临时表的表名开头包含两个#号。
    1.使用Transact-SQL语句建立资料表
    CREATE TABLE 语句的语法格式为:
    CREATE TABLE
    [
        database_name.[owner].
        | owner.
    ] table_name
    (
        {    <column_definition>
            | column_name AS computed_column_expression
            | <table_constraint>
        } [,n]
    )
    [ON {filegroup | DEFAULT} ]
    [TEXTIMAGE_ON {filegroup | DEFAULT} ]  其中,table_name为新建立的表名。对于临时表,表名字符串长度不能超过116个字符,而永久表的表名字符串长度则不能超过128个字符。此外,在同一个数据库中,每个表所有者创建的表名必须保证唯一。
      computed_column_expression指出计算列的定义表达式,计算列是一个虚拟列,它并不是存储在表中,而是由表中的其它非计算列(常规列)导出。计算列定义表达式可以为常规列、常量、变量、函数组成的表达式,但它不能由一个子查询构成。除了下面情况,计算列可以与常规列一样使用在SELECT列表、WHERE子句和ORDER BY子句中:
            计算列不能用在索引的关键词列;
            计算列不能作为PRIMARY KEY、UNIQUE、FOREIGN KEY或DEFAULT约束定义的一部分;
            计算列不能用INSERT和UPDATE语句插入资料。
        注意:① 在建表语句中,不允许对计算列设置空值属性(NULL或NOT NULL);
            ② 在建表语句中,列与列的定义用逗号分隔,当将PRIMARY KEY设置在最后时,       如果最后一列是常规列,则它后面的逗号可以省略;否则如果是计算列,则此逗号不可以省略。
    ON子句指出存储新建表的数据库文件组。当省略该子句或用DEFAULT关键词时,表被建立在数据库的默认文件组中。
    TEXTIMAGE_ON子句说明存储新建表中的text、ntext和image列资料的数据库文件组名称。当省略TEXTIMAGE_ON子句时,text、ntext和image列资料与表存储在同一个文件组中。如果表中不包含text、ntext和image列,则可以省略TEXTIMAGE_ON子句。
    <column_definition> ::= { column_name data_type }
    [ NULL | NOT NULL ]
    [ IDENTITY [(seed, increment ) [NOT FOR REPLICATION] ] ]
    [ ROWGUIDCOL ]
    [ <column_constraint>] [ ...n]
      column_definition和data_type参数分别说明列名及其数据类型,其中数据类型可以为系统数据类型或用户定义数据类型。对于timestamp数据类型列,列名可以省略,此时系统用timestamp字符串作为列名。在一个表中只能有一个timestamp类型列。
    NULL和NOT NULL说明列值是否允许为NULL。在SQL Server中,NULL既不是0也不是空格,它意味着用户还没有为列输入资料或是明确地插入了NULL。如果不使用NULL或NOT NULL为列设置空值属性时,列空值属性遵循以下规则:
            对于用户定义数据类型,SQL Server使用该数据类型的空值属性设置;
            对于系统数据类型列,当列数据类型为timestamp时,列的空值属性为NOT NULL。对于其它数据类型列,其空值属性则由连接选项ANSI_NULL_DFLT_ON和数据库选项‘ANSI null default’决定。
    说明:①通过设置连接选项SET ANSI_NULL_DFLT_ON ON|OFF对列的默认空值属性进行切换;
          ②通过设置数据库选项sp_dboption ‘database’,‘ANSI null default’,‘true’或sp_dboption ‘database’,‘ANSI null default’,‘false’ 对列的默认空值属性进行切换。IDENTITY关键词指定该列为IDENTITY列。当用户向表中插入新的资料时,系统自动为该行的IDENTITY列赋值,并保证其值在表中的唯一性。每个表中只能有一个IDENTITY列,其列值不能由用户更新,不允许空值,也不许关联默认值或建立DEFAULT约束。IDENTITY列常与PRIMARY KEY约束一起使用,从而保证表中各行具有唯一标识。
    IDENTITY列的数据类型只能为int、smallint、tinyint、numeric、decimal等数据类型。当IDENTITY列数据类型为numeric和decimal时,不允许出现小数字。对于IDENTITY列,可用seed参数和increment参数指出IDENTITY列的基值和列值增量。在建立新表时,必须同时指定IDENTITY列的基值和增量,或同时省去这两个参数。默认时,seed和increment的值均为1。
    说明:① 使用关键词IDENTITYCOL可以引用表中的IDENTITY列,而不使用实际列名。                             因为每个表中只有一个IDENTITY列,所以这样操作不会引起二义性;
           ② 通过使用SQL Server中所提供的的系统函数IDENT_SEED(‘table_name’)和IDENT_INCR(‘table_name’)可以返回指定表中IDENTITY列的基值及其增量。
    ROWGUIDCOL关键词说明该列为全局唯一标识列,每个表中只能有一个ROWGUIDCOL列,ROWGUIDCOL列的数据类型必须为uniqueidentifier。ROWGUIDCOL属性不能自动为列赋值,也不要求列值的唯一性。在INSERT语句中,可以使用NEWID函数为ROWGUIDCOL列赋值。
      

  3.   

    我要冰糖前辈,是否理解正确?
    创建表的语法中{} 是什么意思?  --必选项
    创建表的语法中<> 是什么意思?  --标签名称
    创建表中 ::= 是什么意思?    --<标签名称> := (定义为xxx)