当前位置: 代码迷 >> Sql Server >> sql2005的复制表有关问题
  详细解决方案

sql2005的复制表有关问题

热度:64   发布时间:2016-04-24 09:30:14.0
sql2005的复制表问题
我的问题是这样的,我有一个原料名表,需要复制到一个新的库里,我用Insert into 方式发现,它会改变ID号(自由编号的唯一标识),原因是:老表中有部分原料被删除了。造成的结果是:其它数据调用原料表时发生对应错误,即原本是该原料的,结果变成了另一个原料。
请问要如何复制完全一样的表?包括id的编号,并且id仍然是自动编号的唯一标识。
我之前是用这样的方式写的:select * Insert into b from a
这样写就会引起我说的ID编号不一致的问题。
有没有好的办法?
------解决思路----------------------
我按你的操作实践了下

create table test
(id int identity ,
 pname varchar(10)
)

insert into test
select 'aa' union
select 'bb' union
select 'cc' union
select 'dd' union 
select 'ee'

select * from test 

--结果 
五条记录,ID连续

delete from test where id =2 or id=4

select * into new from test

select * from new

/*
1 aa
3 cc
5 ee
*/
原来的id还是test中的id啊,没变啊

------解决思路----------------------
--创建b,表结构一样
create table [b]
(id int identity ,
--其它列
)
--临时取消自增
SET IDENTITY_INSERT b ON
INSERT INTO b(id,--其它列,需要一一写出来
)
SELECT * FROM a
--恢复取消自增
SET IDENTITY_INSERT b OFF
  相关解决方案