前台可以无限新增班级, 所以我希望可以批量插入。 
  可是我该怎么写呢?
 我从网上看的例子都是insert into table (a,b) select c,d from table 
 这样的 这样不是查询数据库中然后把查询到的值插入。我想从前台获取到的数据 插入~~~~
     跪求~~大神指导~~ 小弟分少~还望不嫌弃~11111

解决方案 »

  1.   

    INSERT INTO tablename
    SELECT 1, '班级1' UNION ALL
    SELECT 2, '班级2' UNION ALL
    SELECT 3, '班级3'
      

  2.   

    你好 用UNION ALL?可以解释下不~ 还有 怎么能确定用户新增了几个班级。然后传过来呢?
      

  3.   

    或者,前台拼个XML,传到SQL SERVER,解析XML批量插入
    DECLARE @class XML
    SET @class = '
    <Classes>
    <Class>class1</Class>
    <Class>class2</Class>
    </Classes>
    '
    INSERT tablename(classname)
    SELECT
    Class=T.c.value('./text()[1]', 'nvarchar(10)')
    FROM @class.nodes('/Classes/Class') AS T(c)
      

  4.   

    #1.前台代码中获取新增了几个班级。然后拼成一个XML
    #2.用SQL解析这个XML,插入到表#1.前台代码中获取新增了几个班级。然后拼成一个SQL,像#2楼那样的用UNION ALL的SQL
    #2.执行这个SQL即可。
      

  5.   

    如果你是用c#做开发,都用针对SQL SERVER的批量插入的方法啊 using (SqlBulkCopy bcp = new SqlBulkCopy(pConn, SqlBulkCopyOptions.FireTriggers, pTrans))
    {
         bcp.DestinationTableName = "temp_" + tableName;
         bcp.WriteToServer(data);
    }
      

  6.   

    你搜下SqlBulkCopy看怎么样搞,其实我这个已经很详细了,就是将数据存储到一个DataTable中,然后批量写入数据库