zoukankan      html  css  js  c++  java
  • SQL中一次插入多条数据

    SQL中insert一次可以插入一条数据,我们有三种方法可以一次性插入多条数据。

    1.

    语法:select 字段列表 into 新表 from 源表

    注意事项:此种方法新表是系统自动创建,语句执行前不可以存在新表,并且新表只能保留源表的标识列特性,其他约束不能保留。

    若只需要源表的数据结构,我们可以在语句中添加(top 0)

    2.

    语法:insert into 目的表 select 字段列表 from 源表

    注意事项:此种方法目的表必须在语句执行前存在,并且每一列要与源表对应。

    在此处还有一些有趣的问题,当我使用以下代码来插入多条数据时:

    select top 0 * into newstudent from  student
    insert into newstudent select * from student

    这里会发生这样的报错:

    因为NewClass表中ClassId为标识列,所以我们不能插入值。

    我们的解决办法如下:

    select top 0 * into newstudent from  student
    set identity_insert newstudent on
    insert into newstudent (classid,classname) select * from student

    我们把newstudent 的标识列插入写为显示的,并且添加了列名字段便可以插入了。

    之后我们再创建一个新的NewClass2:

    select top 0 *into NewClass2 from MyClass
    set identity_insert NewClass2 on
    insert into NewClass2(ClassId,ClassName) select* from MyClass

    此时还会报错,这是因为我们之前设置了newclass的标识列插入为on,我们必须先关闭后才可以往newclass2插入值,代码如下:

    select top 0 *into NewClass2 from MyClass
    set identity_insert newclass off
    set identity_insert NewClass2 on
    insert into NewClass2(ClassId,ClassName) select* from MyClass

    至此我们解决了使用第二种方法一次插入多条数据。

    3.

    语法:insert into 表(字段列名) select 值 union select值

  • 相关阅读:
    ReactiveCocoa详解
    你真的了解iOS的深浅拷贝吗?
    Spring Boot中使用Swagger2构建强大的RESTful API文档
    Spring Boot Logback应用日志
    HTTP与私有二进制协议之间的区别
    Linux常见命令
    solr云的简单搭建(了解)
    项目开发与总结
    垂直分库所带来的问题和解决方法
    水平分库分表的关键问题及解决思路
  • 原文地址:https://www.cnblogs.com/rurui/p/6439521.html
Copyright © 2011-2022 走看看