--必须将字段列写出来,即:SET IDENTITY_INSERT s on
insert into s(字段1,字段2,...) select 字段1,字段2,... from sales

解决方案 »

  1.   

    SET IDENTITY_INSERT s on
    insert s (字段1,字段2,...) select 字段1,字段2,... from sales
    SET IDENTITY_INSERT s off---------------------------------------------
    TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。它对有索引的表没有办法
      

  2.   

    --如果不愿意手工写,用生成SQL语句的方法:delcare @s varchar(8000)
    set @s=''
    select @s=@s+','+a.name
    from(select name from syscolumns where object_id('s')=id) a
    join(select name from syscolumns where object_id('sales')=id) b on a.name=b.name
    set @s=substring(@s,2,8000)
    exec('SET IDENTITY_INSERT s on
    insert into s('+@s+') select '+@s+' from sales')
      

  3.   

    TRUNCATE TABLE 不记录行级日志,但有数据页级的日志的记录!
    对有,外键约束的表 no way!
      

  4.   

    是否因为  SET IDENTITY_INSERT s on
    才必须将字段列写出来
      

  5.   

    是否因为  SET IDENTITY_INSERT s on
    才必须将字段列写出来
      

  6.   

    是的吧!不写完整他会报错的。
    没有 SET IDENTITY_INSERT s on 是可以不列出来