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

当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 't2' 中的标识
我要将数据库dt1中的表t1中的 数据插入到数据库dt2中的表t2   
  t2中的字段 比 t1的多 并且都有自增列
  我现在要把t2表中的内容插入到t1表中  自增列的内容也要插入
SET IDENTITY_INSERT dt2.dbo.t2 on
报上面的错
 各位大大 谁能帮忙解决一下

------解决方案--------------------
SET IDENTITY_INSERT dt2.dbo.t2 on;
insert dt2.dbo.t2(ID,col1.......)--指定所有列名
select * from t1

SET IDENTITY_INSERT dt2.dbo.t2 off;

------解决方案--------------------
舉個例子給樓主參照

USE tempdb
GO
CREATE TABLE T1(ID INT IDENTITY(10,1))
GO
CREATE TABLE T2(ID INT identity)

INSERT INTO t1 DEFAULT VALUES
go

INSERT INTO t2 DEFAULT VALUES
go 3
/*
T1:
-----
10

T2:
--
1
2
3
*/
SET IDENTITY_INSERT t2 ON;

INSERT t2(ID) SELECT * FROM t1

SET IDENTITY_INSERT t2 Off ;

/*
T2:
1
2
3
10
*/

INSERT INTO t2 DEFAULT VALUES
/*
T2:
1
2
3
10
11
*/
--SELECT * FROM t1
--SELECT * FROM t2

--DROP TABLE t1,t2