日期:2014-05-17  浏览次数:20514 次

关于sql2005的identity的问题,还请指教
我使用脚本已经生成了库和表了,然后导入数据,这时候表的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
或者有什么批量设置的方法?还请教各位

------解决方案--------------------
不知道你具体脚本是怎么样的
如果是从其他表生成的
可以修改脚本
select ID*1,col1,col2 into tablea from tableb
------解决方案--------------------
你在导入数据前,数据库中的这个表,先不要设置为 identity ,就设置成一般的int 型,等你导入的数据事件操作完后,再ALTER表 修改表的主键为自增,使用ALTER table 表名 ALTER column  列明 identity(1,1) NOT null

------解决方案--------------------
使用ALTER table 表名 ALTER column  列明 int identity(1,1) NOT null

------解决方案--------------------
导入数据前先把自增属性关掉,等导入完成后再启用并且标识初始值设你的最后一个ID
------解决方案--------------------
引用:
导入数据前先把自增属性关掉,等导入完成后再启用并且标识初始值设你的最后一个ID


+!,没试过,不知道行不行。