不要想歪了
代码是我国的行政区划表 sql语句是csdn下载的 为啥不能插入啊? 老是提示,或者xx处有错误
截取一点点放上来吧
INSERT INTO Lelv_w_QuHua VALUES (
  (110000, '110000', '北京', '1', 2),
  (110100, '110100', '北京市', '110000', 3),
  (110101, '110101', '东城区', '110100', 4),
  (110102, '110102', '西城区', '110100', 4),
  (110103, '110103', '崇文区', '110100', 4),
  (110104, '110104', '宣武区', '110100', 4),
  (110105, '110105', '朝阳区', '110100', 4),
  (110106, '110106', '丰台区', '110100', 4),
  (110107, '110107', '石景山区', '110100', 4),
  (110108, '110108', '海淀区', '110100', 4),
  (110109, '110109', '门头沟区', '110100', 4),
  (110111, '110111', '房山区', '110100', 4),
  (110112, '110112', '通州区', '110100', 4),
  (110113, '110113', '顺义区', '110100', 4),
  (110114, '110114', '昌平区', '110100', 4),
  (110115, '110115', '大兴区', '110100', 4),
  (110116, '110116', '怀柔区', '110100', 4),
  (110117, '110117', '平谷区', '110100', 4),
  (110228, '110228', '密云县', '110100', 4),
  (110229, '110229', '延庆县', '110100', 4),
  (110230, '110230', '其它区', '110100', 4),
  (120000, '120000', '天津', '1', 2),
  (120100, '120100', '天津市', '120000', 3),
  (120101, '120101', '和平区', '120100', 4),
  (120102, '120102', '河东区', '120100', 4),
  (120103, '120103', '河西区', '120100', 4),
  (120104, '120104', '南开区', '120100', 4),
  (120105, '120105', '河北区', '120100', 4),
  (120106, '120106', '红桥区', '120100', 4),
  (120107, '120107', '塘沽区', '120100', 4),
  (120108, '120108', '汉沽区', '120100', 4),
  (120109, '120109', '大港区', '120100', 4);
COMMIT;单行插入可以。

解决方案 »

  1.   

    INSERT INTO Lelv_w_QuHua VALUES ( 110000, '110000', '北京', '1', 2) 
    INSERT INTO Lelv_w_QuHua VALUES ( 110100, '110100', '北京市', '110000', 3) 都改成类似这样的
      

  2.   

    INSERT INTO Lelv_w_QuHua 
    select 110000, '110000', '北京', '1', 2 union all
    select 110100, '110100', '北京市', '110000', 3 union all
    select 110101, '110101', '东城区', '110100', 4 union all
    select 110102, '110102', '西城区', '110100', 4这样能快些
      

  3.   

    这怎么可能插入得了
    values()这个括号里面的每一项对应表里面一个字段。。
    LZ你的语句每一字段位置是一整行的数据
    这怎么插入呢。。?
    1楼正解
      

  4.   

    2008语法不考虑 values()里面每一个字段了么,
      

  5.   

      不需要union all, 用ultraedit替换一下,改成下面的样子
      INSERT INTO Lelv_w_QuHua EXEC
      SELECT 110000, '110000', '北京', '1', 2
      SELECT 110100, '110100', '北京市', '110000', 3
      SELECT ...
       
      这种方式效率最高.
      

  6.   

    没有看到用ultraedit 呀 
      

  7.   

    INSERT INTO Lelv_w_QuHua 
    select 110000, '110000', '北京', '1', 2 union all
    select 110100, '110100', '北京市', '110000', 3 union all
    select 110101, '110101', '东城区', '110100', 4
    这样写效率高一些!
      

  8.   

    MySQL是这样插的  楼主的第一句很邪恶啊~
    SQL Server这样是不行的 型号不对
    还是这样插的好:
    INSERT INTO Lelv_w_QuHua VALUES ( 110000, '110000', '北京', '1', 2) 
    INSERT INTO Lelv_w_QuHua VALUES ( 110100, '110100', '北京市', '110000', 3) 
    INSERT INTO Lelv_w_QuHua VALUES ()。。
      

  9.   

    语句太长了,版本太低了!
    建议补全每个values 前的INSERT INTO Lelv_w_QuHua
      

  10.   

        sql语言是非过程化语言,sql服务器在执行sql语句时会先对语句进行优化。而影响运行速度的主要因素是:在实现同一个功能时,运行的语句数量。
    INSERT INTO Lelv_w_QuHua VALUES ( 110000, '110000', '北京', '1', 2) 
    INSERT INTO Lelv_w_QuHua VALUES ( 110100, '110100', '北京市', '110000', 3) 
    --这是多条语句,sql服务器会优化多次INSERT INTO Lelv_w_QuHua  
    select 110000, '110000', '北京', '1', 2 union all
    select 110100, '110100', '北京市', '110000', 3 union all
    select 110101, '110101', '东城区', '110100', 4
    --这其实是一条语句,sql服务器会自动优化后执行的,优化一次所以第二种语法比第一种要好。
      

  11.   

    gdbh猜想:
    或许你的表中不止这几个字段,可能得在 insert into 后面加个字段列表吧.
      

  12.   

    这还不简单?我没记错的话 这个写法在sql server2008里面支持的。。你的数据库版本问题吧