如下
create table DBO.TCORPASSET (
   L_PORT_ID            int                  null,
   L_DATE               int                  not null,
   EN_ALL_ASSET         numeric(19,4)        null,
   EN_PURE_ASSET        numeric(19,4)        null,
   EN_PURE_CAPITAL      numeric(19,4)        null,
   EN_DATA1             numeric(19,4)        null,
   EN_DATA2             numeric(19,4)        null,
   EN_DATA3             numeric(19,4)        null,
   EN_DATA4             numeric(19,4)        null,
   EN_DATA5             numeric(19,4)        null,
   EN_DATA6             numeric(19,4)        null,
   EN_DATA7             numeric(19,4)        null,
   EN_DATA8             numeric(19,4)        null,
   EN_DATA9             numeric(19,4)        null,
   EN_DATA10            numeric(19,4)        null
)
是不是NOT NULL表示为主键 而NULL为非主键?
另外NUMERIC是不是19位,然后4位小数的意思?
DECIMAL的用法和NUMERIC又有什么区别呢?

解决方案 »

  1.   

    not null 表示字段不可以为空,是约束不是主键
      

  2.   

    NOT NULL /NULL只是指定该列是否允许为空...不是主键的意思..
      

  3.   

    要指定主键的话..要加上PRIMARY KEY
      

  4.   

    DECIMAL跟NUMERIC是一样的..用哪个也行
      

  5.   

    是不是NOT NULL表示为主键 而NULL为非主键?   错 
    另外NUMERIC是不是19位,然后4位小数的意思?   这个要看你后面小括号里面是怎么定义的了
      

  6.   

    decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )]
    固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。p(精度)
    最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。s (小数位数)
    小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。
      

  7.   

    not null 表示字段不可以为空,是约束不是主键,要想设主键选中你要设主键的那项右击选择主键,选择完后会在这行的前面出现个钥匙标志。
      

  8.   

    declare @d1 decimal(19,4)
    declare @d2 decimal(2,1)
    declare @d3 float set @d1=1.01
    set @d2=1.01
    set @d3=1.01select @d1,@d2,@d3/*
    1.0100 1.0 1.01*/
      

  9.   

    DECIMAL(P,S)中是不是要求P一定要大于S?
    比如象declare @d2 decimal(2,1) set @d2=1.01
    最后SELECT出来也只能舍去小数点后面的吧?