根据提示改就好了1. set IDENTITY_INSERT on insert...指定全部列名 set IDENTITY_INSERT off2. insert...不要包含IDENTITY列
如果列很多,要一個一個的寫是很累人的 有一個辦法 先把目標表的自動遞增的欄位設置成跟普通欄位一樣 再用insert into 目標庫.擁有者.目標表 select * from 源庫.擁有者.源表 的方法導入,最後再把剛修改的欄位改回自動遞增型的
--try declare @col varchar(4000),@sql varchar(4000) set @col='' select @col=@col+','+name from syscolumns where id=object_id('表名') and status<>128 set @col=stuff(@col,1,1,'') set @sql='insert into tb('+@col+')select '+@col+' from 另一数据库名.dbo.表名' exec(@sql)
由于插入表中存在标识列,必须设置后才能进行插入 set IDENTITY_INSERT on insert语句 set IDENTITY_INSERT off
insert 另一个数据库.dbo.另一个表
select * from 一个表 orinsert 另一个数据库.dbo.另一个表
select * from 一个数据库.dbo.一个表
服务器: 消息 8101,级别 16,状态 1,行 3
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'dbmain.dbo.L007' 中为标识列指定显式值。怎么解决????????
insert into 数据库名.dbo.表名(col1,col2......)
select col1,col2...... from 另一数据库名.dbo.表名
列里面不要有自增字段
服务器: 消息 8101,级别 16,状态 1,行 3
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'dbmain.dbo.L007' 中为标识列指定显式值。怎么解决????????因为你有自增字段,那个字段不要插入按照我写的语法格式这么插就ok了
set IDENTITY_INSERT on
insert...指定全部列名
set IDENTITY_INSERT off2.
insert...不要包含IDENTITY列
有一個辦法
先把目標表的自動遞增的欄位設置成跟普通欄位一樣
再用insert into 目標庫.擁有者.目標表 select * from 源庫.擁有者.源表
的方法導入,最後再把剛修改的欄位改回自動遞增型的
declare @col varchar(4000),@sql varchar(4000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and status<>128
set @col=stuff(@col,1,1,'')
set @sql='insert into tb('+@col+')select '+@col+' from 另一数据库名.dbo.表名'
exec(@sql)
set IDENTITY_INSERT on
insert语句
set IDENTITY_INSERT off