有一个表:table1ID     Name
-----------------------------
1      John
2      2
3      3Name字段不允许空,如何将Name字段的默认值设为ID号,如果用户留空,则默认使用ID号填入

解决方案 »

  1.   

    用触发器,我当你的id是自增长的,如果不是请自行修改(不是更容一点,update的时候不用max了)
    CREATE TRIGGER DefaultValue
    ON table1
    INSTEAD OF INSERT
    AS 
    BEGIN
      INSERT INTO table1(name) SELECT isnull(num,'') FROM inserted
      if (SELECT name FROM inserted) is null 
      update table1 set name=convert(varchar,id) where id=(select max(id) from table1)
    END
      

  2.   

    如果id不是自增长就这样
    CREATE TRIGGER DefaultValue
    ON table1
    INSTEAD OF INSERT
    AS 
    BEGIN
      INSERT INTO table1(id,name) SELECT id,isnull(num,convert(varchar,id)) FROM inserted
    END