sqlserver insert into 批量插入数据

时间:2025-02-07 11:40:18

sqlserver insert into 批量插入数据

最近接收了一个XUEXIAO的老项目使用的是sqlserver库,然后需要从别的库拉取数据并且插入其他库中,然而我再mybatis里面写的sql报错,说是我","附近语法错误,然后经过检查发现,sqlserver的批量新增跟mysql跟oracle不太一样,特意写下此文防止大家踩坑。

刚开始的sql

注意 :XX表示的是表名或者字段

<insert  parameterType="list">
    insert into
    XX (XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX)
    VALUES
    <foreach collection="list" index="index" item="item" open="" close="" separator=" , ">
        #{},#{}, #{},#{}, #{},#{}, #{},#{}, #{},#{}, #{}
    </foreach>
</insert>

修改以后的sql

<insert id="XXX" parameterType="list">
    insert into
    XX (XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX)
    SELECT
    <foreach collection="list" index="index" item="item" open="" close="" separator=" UNION ALL SELECT ">
        #{},#{}, #{},#{}, #{},#{}, #{},#{}, #{},#{}, #{}
    </foreach>
</insert>
语法:

批量插入数据

insert into 表名  select * from--或
insert into 表名(字段1,字段2select 字段1,字段2 from