用INDEX恐怕不能达到你的要求
我目前能想到的解决办法:
CREATE TABLE T_MYTABLE(ID,...);
CREATE TABLE T_FAX_NO(ID, FAX_NO);
对T_FAX_NO.FAX_NO建立唯一索引,然后当FAX_NO为空时,不插入纪录到T_FAX_NO表中.

解决方案 »

  1.   

    "既可为空又必唯一"本来就是矛盾的嘛,两个都为空的不就不唯一了?建议不用唯一约束,在程序中判断是否唯一。
    或者你这个表还有其它唯一键(比如字段名为uniquefield),将“传真”字段的缺省值设为 'null-'+cast(uniquefield as varchar)。读取记录时前缀为'null-'的返回null。
      

  2.   

    我赞成 icevi(按钮工厂) 的说法
      

  3.   

    我也认为icevi(按钮工厂)的办法比较好,而且自己还偷学了一招!