直接从企业管理器里面看表结构不是很好嘛!不允许为空 有 not null或者看建表语句create table t(idx int not null, cname varchar(30) null);

解决方案 »

  1.   

    create table tb(id int)
    go
    select isnullable from syscolumns where id=object_id('tb') and name='id'
    /*
    --
    1
    */
      

  2.   

    select isnullable from syscolumns
      

  3.   

    比如:要判断a01表的a0101字段是否允许空,返回0表示不允许空,1表示允许select isnullable from syscolumns a,sysobjects b
    where a.id=b.id
    and b.name='a01'
    and a.name='a0101'
      

  4.   


    --
    --COLUMNPROPERTY--EX:
    SELECT COLUMNPROPERTY( OBJECT_ID('orders'),'orderid','AllowsNull')
      

  5.   

    从邹老大很早前的一段语句中都能提出SELECT       (case when a.colorder=1 then d.name else '' end)表名,       a.colorder 字段序号,       a.name 字段名,       (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,       (case when (SELECT count(*)       FROM sysobjects       WHERE (name in                 (SELECT name                FROM sysindexes                WHERE (id = a.id) AND (indid in                          (SELECT indid                         FROM sysindexkeys                         WHERE (id = a.id) AND (colid in                                   (SELECT colid                                  FROM syscolumns                                  WHERE (id = a.id) AND (name = a.name))))))) AND              (xtype = 'PK'))>0 then '√' else '' end) 主键,       b.name 类型,       a.length 占用字节数,       COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,       isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,       (case when a.isnullable=1 then '√'else '' end) 允许空,       isnull(e.text,'') 默认值,       isnull(g.[value],'') AS 字段说明   FROM  syscolumns  a left join systypes b on  a.xtype=b.xusertypeinner join sysobjects don a.id=d.id  and  d.xtype='U' and  d.name<>'dtproperties'left join syscomments eon a.cdefault=e.idleft join sysproperties gon a.id=g.id AND a.colid = g.smallid order by a.id,a.colorder
    可以看出syscolumns里isnullable列就存放了这个信息。
    而达到你的要求的话,可以设置为不允许为空,并给默认值约束