sql的insert复制问题

fonvey 2009-02-09 02:04:15
我的cityt表本来就有id=18这条数据,,
执行这个
SET IDENTITY_INSERT cityt ON
insert into cityt(id,code) select id,code from province where id=18
SET IDENTITY_INSERT cityt OFF
之后就多加了一行数据就是有两个id=18数据了,
请问我的ID是

Int类型 标识为是 的自动编号来的,,
这样就是ID是唯一的,,
为什么会有两个ID为18的

我怎么样从province符合条件的信息复制cityt里啊,,但是要求跟cityt里原有的ID不重复
...全文
74 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
claro 2009-02-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jinjazz 的回复:]
〉〉insert into cityt(code) select code from province  where id=18

SET IDENTITY_INSERT cityt ON  只是让你可以在该字段插入数据,而不是帮你自动更改字段数字。
[/Quote]
是对的。
wzy_love_sly 2009-02-09
  • 打赏
  • 举报
回复
create table t1(id int identity,a int)
insert t1 values(1)
insert t1 values(2)

dbcc checkident ( 't1', reseed,1)
insert t1 values(3)
select * from t1


ID A
1 1
2 2
2 3

想不重复,可以不改 identity_insert,就用

insert into cityt(code) select code from province  where id=18 
jinjazz 2009-02-09
  • 打赏
  • 举报
回复
〉〉insert into cityt(code) select code from province where id=18

SET IDENTITY_INSERT cityt ON 只是让你可以在该字段插入数据,而不是帮你自动更改字段数字。
nzperfect 2009-02-09
  • 打赏
  • 举报
回复
insert into cityt(code) select code from province where id=18
dawugui 2009-02-09
  • 打赏
  • 举报
回复
你的ID是的Int类型 标识为是 的自动编号还重复就奇怪了.
水族杰纶 2009-02-09
  • 打赏
  • 举报
回复
SET IDENTITY_INSERT cityt ON  
insert into cityt(id,code) select id,code from province where id not in(select id from cityt)
SET IDENTITY_INSERT cityt OFF
dawugui 2009-02-09
  • 打赏
  • 举报
回复
如果确实重复,就用distinct

insert into cityt(id,code) select distinct id,code from province where id=18

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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