第一种:declare @NB table(代码 int,名称 varchar(10),年份 int)
insert into @NB
select 12,'单位1',2003
union all select 12,'单位1',2004
union all select 22,'单位2',2001
union all select 22,'单位2',2002
union all select 22,'单位2',2003第二种:
declare @NB table(代码 int,名称 varchar(10),年份 int)
insert into @NB values(12,'单位1',2003)
insert into @NB values(12,'单位1',2004)
insert into @NB values(22,'单位2',2001)
insert into @NB values(22,'单位2',2002)
insert into @NB values(22,'单位2',2003)

解决方案 »

  1.   

    一个是insert一个表, 一个是insert多条记录
      

  2.   

    从事务角度分析:
    第一种,在一个事务中插入多条数据。即使是在插入最后一行数据时发生错误,整个插入都会被取消。如果插入的数据非常多,会占用大量的日志空间。
    第二种,多条数据分别在多个事务中插入。任何一条语句发生错误,只会取消本条语句插入的数据,不影响已经插入的数据。在 simple 恢复模式下,即使插入的数据非常多,日志空间也会被循环使用,不会占用太多的日志空间。
      

  3.   

    从事务角度分析:
    第一种,在一个事务中插入多条数据。即使是在插入最后一行数据时发生错误,整个插入都会被取消。如果插入的数据非常多,会占用大量的日志空间。
    第二种,多条数据分别在多个事务中插入。任何一条语句发生错误,只会取消本条语句插入的数据,不影响已经插入的数据。在 simple 恢复模式下,即使插入的数据非常多,日志空间也会被循环使用,不会占用太多的日志空间。呵呵学习学习
      

  4.   

    declare @NB table(代码 int,名称 varchar(10),年份 int)
    insert into @NB values (12,'单位1',2003)
    insert into @NB values(12,'单位1',2004)
    insert into @NB values(22,'单位2',2001)
    insert into @NB values(22,'单位2',2002)
    insert into @NB values(22,'单位2','2003')
    为什么最后一行,最后一列年份的数据类型和定义的类型不符合时,仍可以执行通过???
      

  5.   

    sql是面向集合的可以一次操作一集合select 12,'单位1',2003
    union all select 12,'单位1',2004
    union all select 22,'单位2',2001
    union all select 22,'单位2',2002
    union all select 22,'单位2',2003
    就是一集合