使用DTS导入有IDENTITY字段的表时的问题

smallmark 2004-12-30 02:31:30
表A有字段ID,为IDENTITY(1,1)类型。

我用DTS导入,如果选择这一列,报错(不能有重复记录 ID列)。
如果不选择,会报错(ID不能为空)。

晕倒。
...全文
139 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallmark 2004-12-30
  • 打赏
  • 举报
回复
问题解决了,


启用标志列插入选项,打个勾。
连同标志列一同导入。

应该改为禁用该选项即可。
631799 2004-12-30
  • 打赏
  • 举报
回复
怎么会不行呢?这样删就行了啊。
delete a from tb a where id not in (select max(id) from tb group by 字段1,字段2...)
smallmark 2004-12-30
  • 打赏
  • 举报
回复
无法删除,因为这个法的唯一索引是以ID为主的,其它都可以有重复,关键是ID字段不能重复,可是导过来的数据ID字段是有重复的。
smallmark 2004-12-30
  • 打赏
  • 举报
回复
631799(杭州工人) ( ) 信誉:97
你的写法无效。
jim138 2004-12-30
  • 打赏
  • 举报
回复
DING,MARK
631799 2004-12-30
  • 打赏
  • 举报
回复
先导,然后删掉重复记录。

smallmark 2004-12-30
  • 打赏
  • 举报
回复
有重复记录
631799 2004-12-30
  • 打赏
  • 举报
回复
那不要把ID导过去啊。


DBCC CHECKIDENT (表名, RESEED, 记录数) --执行一下这个
insert into tb2(除了ID列的字段) select (对应要导的字段名) from tb1
LBYYBL 2004-12-30
  • 打赏
  • 举报
回复
在传换中选择 目的表中追加行和启用标识插入-〉确定
631799 2004-12-30
  • 打赏
  • 举报
回复
要么用SQL语句导:

set identity_insert tb2 on
insert into tb2 select * from tb1 where ...
set identity_insert tb2 off
smallmark 2004-12-30
  • 打赏
  • 举报
回复
没用,插入的ID字段会有重复的记录的。
smallmark 2004-12-30
  • 打赏
  • 举报
回复
当然,我的ID同时也是Primary,但如果去掉这个属性,DTS能导入成功,此字段的记录会重复。
631799 2004-12-30
  • 打赏
  • 举报
回复
启用标志列插入选项,打个勾。
连同标志列一同导入。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧