你建立的临时表mytemptable要和mytable的字段个数一样,位置一样,总之要相同的表!看我的测试例子:
建立原来的表a:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[a]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[a]
GO
插入数据为:
/*
a_nam a_add
---------- ----------
1 aa
3 bb
2 bb
1 aa
3 bb
(5 row(s) affected)
*/
然后建立一个和a相同结构的表:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test_a]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[test_a]
GO
CREATE TABLE [dbo].[test_a] (
[a_nam] [varchar] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,
[a_add] [varchar] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL
) ON [PRIMARY]
GO
--这个是我生成的脚本,我上面说的“列就是autid,建立一个索引,勾选上唯一(unique),勾选上忽略重复的值,其他不要选择!” 要用企业管理器自己设计!
做好后:执行
insert into test_a
select * from a
/*
Server: Msg 3604, Level 16, State 1, Line 1
Duplicate key was ignored.
--意思就是已忽略重复的键。
*/