当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,必须为表 't2' 中的标识

lili20090907 2011-05-31 11:14:34
我要将数据库dt1中的表t1中的 数据插入到数据库dt2中的表t2
t2中的字段 比 t1的多 并且都有自增列
我现在要把t2表中的内容插入到t1表中 自增列的内容也要插入
SET IDENTITY_INSERT dt2.dbo.t2 on
报上面的错
各位大大 谁能帮忙解决一下
...全文
2071 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rgong 2013-08-13
  • 打赏
  • 举报
回复
我遇到这样的问题,一般都是数据库表里面的自增字段的原因
lili20090907 2011-05-31
  • 打赏
  • 举报
回复
T1结构如下ID 自增,NAME,PASS,BZ
T2结构如下ID 自增,NAME,PASS,BZ,XIN,B
我现在要将T1中的数据插入到T2中,T2的ID继续自增
T2中的字段B中内容显示T1的ID
中国风 2011-05-31
  • 打赏
  • 举报
回复
SET IDENTITY_INSERT dt2.dbo.t2 on;
insert dt2.dbo.t2(ID,col1.......)--指定所有列名
select * from t1

SET IDENTITY_INSERT dt2.dbo.t2 off;
中国风 2011-05-31
  • 打赏
  • 举报
回复
舉個例子給樓主參照

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

22,209

社区成员

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

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