INSERT INTO table (parentId, name) 
SELECT id, N'北京市'
FROM table
WHERE parentId= 0

解决方案 »

  1.   

    不改不行吗,插入的时候就INSERT INTO table (parentId, name) VALUES (null, 北京市);parentId设置可空
      

  2.   

    -- 或者
    INSERT INTO table (parentId, name)
    VALUES ((SELECT id FROM table WHERE parentId= 0), 北京市);
      

  3.   

    INSERT INTO table (parentId, name)
    VALUES ((SELECT top 1 id FROM table WHERE parentId= 0), 北京市);
      

  4.   

    谢谢哦!
    可是如果只有这么一句,那么还没有建立这条记录,SELECT top 1 id FROM table WHERE parentId= 0能查到该条记录吗?parentId字段是Not Null且没有默认值的。
      

  5.   

    Haiwer,你好!parentId要求非空,且没有默认值。
      

  6.   

    zjcxc,happyflystone,谢谢哦!INSERT INTO table (parentId, name)
    VALUES ((SELECT top 1 id FROM table WHERE parentId= 0), 北京市);
    可是如果只有这么一句,那么还没有建立这条记录,SELECT top 1 id FROM table WHERE parentId= 0能查到该条记录吗?parentId字段是Not Null且没有默认值的。
      

  7.   

    至少要两条语句.ID是identity的,必须要等记录新增完毕之后才能取到该ID的值。
      

  8.   

    INSERT INTO table (parentId, name)
    VALUES ((SELECT id FROM table WHERE parentId= 0), 北京市);
      

  9.   

    INSERT INTO table (parentId, name)
    VALUES (isnull((SELECT top 1 id FROM table WHERE parentId= 0),0), 北京市);