读书人

当 IDENTITY_INSERT 设立为 ON 或某个

发布时间: 2013-08-14 14:27:55 作者: rapoo

当 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

读书人网 >SQL Server

热点推荐