我使用脚本已经生成了库和表了,然后导入数据,这时候表的ID字段都已经设置为自增字段了,我想导入的数据ID要和数据源中的一致,不是本表中的自增字段自己自增的
不知道我说明白了没有我想导入的效果
ID name
1   a
3   b
5   c
6   d
9   e
23  f
但是实际的导入效果
ID name
1   a
2   b
3   c
4   d
5   e
6   f
我想自增字段在导入的时候和导入的数据一致,以后在自增
由于数据库中的表太多了,一个一个表的改太麻烦了,有没有什么好办法可以解决这个问题
还有,在导入的时候我也选择了enable identity insert这个选项,但还是不行
对于SET IDENTITY_INSERT  这个命令能对整个数据库使用吗?
例如 SET IDENTITY_INSERT 数据库名  ON 而不是 SET IDENTITY_INSERT 表名 ON
或者有什么批量设置的方法?还请教各位

解决方案 »

  1.   

    set identity 表名 on 只能单表设定哦。 实在要批量 select 'set identity '+ name +' on' from sys.tables得出的结果执行即可。 
      

  2.   

    不知道你具体脚本是怎么样的
    如果是从其他表生成的
    可以修改脚本
    select ID*1,col1,col2 into tablea from tableb
      

  3.   

    你在导入数据前,数据库中的这个表,先不要设置为 identity ,就设置成一般的int 型,等你导入的数据事件操作完后,再ALTER表 修改表的主键为自增,使用ALTER table 表名 ALTER column  列明 identity(1,1) NOT null
      

  4.   

    使用ALTER table 表名 ALTER column  列明 int identity(1,1) NOT null
      

  5.   

    倒是可以用导入导出工具操作,导入的时候可以选择启动标识插入功能
    不过这方法也要一个表一个表的点
    或者08可以用生成脚本功能生成数据脚本,数据脚本自动都带identity_insert选项
    如果不是08以上版本,又不想用导入导出工具的话,
    只能用游标自己把所有的表要执行的语句拼接出来了