表B有idb和b两个字段,idb是主键也是自动生成的,其中表A中的a字段和表B中的b字段类型相同,
现在我想把表A的数据插入到表B中,
insert into B(b) select a from A但是会报错,因为B中的自动生成主键没有插入,怎么写可以让A中的a字段插入到B中的b字段中,同时也让B中的主键idb自动生成出来?
12 个解决方案
#1
insert into B
select a from A
#2
你这样写是对的,至于没插入进去应该是因为你表字段设置不对,没有设置成自增列吧
#3
语句是对的,出错是因为自增长主键没法插入 你不要插主键就是了。
#4
难道不能让主键自动生成吗
#5
[code=SQL]
create table #A(ida int identity(1,1),a nvarchar(1))
create table #b(idb int identity(1,1),b nvarchar(1))
insert #A(a) select '1' union all
select '2' union all
select '3' union all
select '4' union all
select '5' union all
select '6'
insert #B(b) select a from #A
select * from #B
[code=SQL]
按你的寫法。。沒問題啊。。應該系在idb設個identity(1,1)
create table #A(ida int identity(1,1),a nvarchar(1))
create table #b(idb int identity(1,1),b nvarchar(1))
insert #A(a) select '1' union all
select '2' union all
select '3' union all
select '4' union all
select '5' union all
select '6'
insert #B(b) select a from #A
select * from #B
[code=SQL]
按你的寫法。。沒問題啊。。應該系在idb設個identity(1,1)
#6
你写的语法并没有问题.请检查自动增长列设置是否正确
#7
insert #B select a from tablename
select distinct * into #temp from tablename;
delete from #temp;
select distinct * into #temp from tablename;
delete from #temp;
#8
我的主键类型不是自增长的,是uniqueidentifier类型
#9
insert into B(idb,b) select newid(),a from A
#10
uniqueidentifier类型插入时要使用NewID()函数
#11
uniqueidentifier类型
当然不能自动增长。
当然不能自动增长。
create table #A(ida int identity(1,1),a nvarchar(1))
create table #b(idb UNIQUEIDENTIFIER,b nvarchar(1))
insert #A(a)
select '1' union all
select '2' union all
select '3' union all
select '4' union all
select '5' union all
select '6'
insert #B(b) select a from #A
select * from #B
idb b
---- ----
NULL 1
NULL 2
NULL 3
NULL 4
NULL 5
NULL 6
#12
uniqueidentifier和自增ID插入方法是不一样的
#1
insert into B
select a from A
#2
你这样写是对的,至于没插入进去应该是因为你表字段设置不对,没有设置成自增列吧
#3
语句是对的,出错是因为自增长主键没法插入 你不要插主键就是了。
#4
难道不能让主键自动生成吗
#5
[code=SQL]
create table #A(ida int identity(1,1),a nvarchar(1))
create table #b(idb int identity(1,1),b nvarchar(1))
insert #A(a) select '1' union all
select '2' union all
select '3' union all
select '4' union all
select '5' union all
select '6'
insert #B(b) select a from #A
select * from #B
[code=SQL]
按你的寫法。。沒問題啊。。應該系在idb設個identity(1,1)
create table #A(ida int identity(1,1),a nvarchar(1))
create table #b(idb int identity(1,1),b nvarchar(1))
insert #A(a) select '1' union all
select '2' union all
select '3' union all
select '4' union all
select '5' union all
select '6'
insert #B(b) select a from #A
select * from #B
[code=SQL]
按你的寫法。。沒問題啊。。應該系在idb設個identity(1,1)
#6
你写的语法并没有问题.请检查自动增长列设置是否正确
#7
insert #B select a from tablename
select distinct * into #temp from tablename;
delete from #temp;
select distinct * into #temp from tablename;
delete from #temp;
#8
我的主键类型不是自增长的,是uniqueidentifier类型
#9
insert into B(idb,b) select newid(),a from A
#10
uniqueidentifier类型插入时要使用NewID()函数
#11
uniqueidentifier类型
当然不能自动增长。
当然不能自动增长。
create table #A(ida int identity(1,1),a nvarchar(1))
create table #b(idb UNIQUEIDENTIFIER,b nvarchar(1))
insert #A(a)
select '1' union all
select '2' union all
select '3' union all
select '4' union all
select '5' union all
select '6'
insert #B(b) select a from #A
select * from #B
idb b
---- ----
NULL 1
NULL 2
NULL 3
NULL 4
NULL 5
NULL 6
#12
uniqueidentifier和自增ID插入方法是不一样的