从表A中通过查询把符合条件的记录插入到另一张表,怎么写?

时间:2021-12-27 21:11:13
表A中有 主键CID  日期 DT  客户ACCOUNT   表B中有主见CID(表B是表A的关联表通过CID关联) 存货 invt  数量 SL 
通过查询日期  把表A和表B中符合条件的数据分别插入表C 和表D  在表C和表D中他们的字段名称不一样。

38 个解决方案

#1


条件是什么?

#2


--希望楼主给出测试数据 
这样下面的高手会帮你很快解决问题~

#3


引用楼主 rmrmrm 的回复:
表A中有 主键CID  日期 DT  客户ACCOUNT  表B中有主见CID(表B是表A的关联表通过CID关联) 存货 invt  数量 SL
通过查询日期  把表A和表B中符合条件的数据分别插入表C 和表D  在表C和表D中他们的字段名称不一样。

最好给出表结构,测试数据,计算方法和正确结果.

#4


INSERT C(COL,COL1..)SELECT A.* FROM A WHERE 条件

#5


insert into c ... select a...,b... from a , b where a.cid = b.cid
insert into d ... select a...,b... from a , b where a.cid = b.cid

#6


拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) 
insert into b(a, b, c) select d,e,f from a; 

#7


引用 5 楼 dawugui 的回复:
insert into c ... select a...,b... from a , b where a.cid = b.cid
insert into d ... select a...,b... from a , b where a.cid = b.cid
呵呵,在猜测当中,

#8


insert into 表C(col1,col2...)
select col1,col2... from 表A where .........

?

#9


就按照上面的格式来 前后字段一一对应 需要条件的话在后面加

insert into b(a, b, c) select d,e,f from a where ..........

#10


引用 9 楼 fredrickhu 的回复:
SQL code就按照上面的格式来 前后字段一一对应 需要条件的话在后面加insertinto b(a, b, c)select d,e,ffrom awhere ..........

up

#11




declare @startdate datetime
declare @enddate   datetime

select @startdate='2009-10-01'
select @enddate='2009-10-30'

insert into c
select cid,dt,account from a where dt between @startdate and @enddate

insert into d
select cid,invt,sl from b where cid in (select cid from a where dt between @startdate and @enddate)

#12


数据库 ANEW
表A CID         DT          ENT
    001      2009-10-15     023
    002      2009-10-16     198

表B CID      ivent         qu
    001      345678000      2
    001      456789240      6
    002      789567124      1
    002      123456564      2
    002      345678976      4

表C id       ddata         cuscode

表D id       cinv          quantity


通过条件查询DT  把表A插入表C  并把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D

例如  查询 2009-10-15  插入结果如下

表C id       ddata         cuscode
    001      2009-10-15     023

表D id       cinv          quantity
    001      345678           2
    001      456789           6   (注意插入的时候表B中的IVENT要去掉后三位数据)

#13


引用 12 楼 rmrmrm 的回复:
数据库 ANEW
表A CID        DT          ENT
    001      2009-10-15    023
    002      2009-10-16    198

表B CID      ivent        qu
    001      345678000      2
    001      456789240      6
    002      789567124      1
    002      123456564      2
    002      345678976      4

表C id      ddata        cuscode

表D id      cinv          quantity


通过条件查询DT  把表A插入表C  并把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D

例如  查询 2009-10-15  插入结果如下

表C id      ddata        cuscode
    001      2009-10-15    023

表D id      cinv          quantity
    001      345678          2
    001      456789          6  (注意插入的时候表B中的IVENT要去掉后三位数据)
insert into c select cid , dt , ent from a where dt = '2009-10-15'

insert into d select b.* from a , b where a.cid = b.cid and a.dt = '2009-10-15'

#14


insert into c select cid , dt , ent from a where dt = '2009-10-15'
--去掉后三位.
insert into d select b.CID , substring(ivent,1,len(ivent)-3),qu from a , b where a.cid = b.cid and a.dt = '2009-10-15'

#15


--把表A插入表C
insert into 表C(id,ddate,cuscode) select cid,dt,ent from 表A where DT='2009-10-15'

#16


insert into 
   c 
select 
   cid , dt , ent 
from 
   a 
where 
  [datetime] = '2009-10-15'

insert into 
  d 
select 
  b.CID , substring(ivent,1,len(ivent)-3),qu 
from 
  a , b 
where 
  a.cid = b.cid 
and 
  a.[datetime] = '2009-10-15'

#17


--把表A插入表C
insert into 表C(id,ddate,cuscode) select cid,dt,ent from 表A where DT='2009-10-15'

--把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D
insert into D(id,ddate,cuscode)
select a.cid,substring(b.ivent,1,len(b.ivent)-3),b.qu from A,B  where a.cid=b.cid and a.DT='2009-10-15'

#18



create table #t(CID  varchar(3), DT datetime,ENT varchar(5))
insert #t select
    '001',      '2009-10-15'  ,  '023' union all select 
    '002' ,     '2009-10-16'  ,  '198' 
create table #t1(CID  varchar(3), ivent  varchar(15),qu int)
insert #t1 select
    '001',      '345678000',      2  union all select 
    '001',      '456789240',      6 union all select 
    '002',      '789567124',      1 union all select 
    '002',      '123456564',      2 union all select 
    '002',      '345678976',      4 

create table #c( id varchar(3),ddata datetime,cuscode varchar(3))
create table #d( ID  varchar(3), cinv  varchar(15),quantity  int)
 

---------------  语句 -----------------
insert #c(id,ddata,cuscode)select * from #t where dt='2009-10-15'
insert #d(id,cinv,quantity)select b.* from #t a ,#t1 b where dt='2009-10-15' and a.cid=b.cid



----------------- 结果 ---------------
select * from #c
select * from #d

id   ddata                                                  cuscode 
---- ------------------------------------------------------ ------- 
001  2009-10-15 00:00:00.000                                023


(所影响的行数为 1 行)

ID   cinv            quantity    
---- --------------- ----------- 
001  345678000       2
001  456789240       6

(所影响的行数为 2 行)


drop table #t
drop table #t1
drop table #c
drop table #d

#19


insert into #table select * from ....

#20


--如果两库同机 
insert into BNEW..c select cid , dt , ent from a where dt = '2009-10-15'

insert into BNEW..d select b.CID , substring(ivent,1,len(ivent)-3),qu from a , b where a.cid = b.cid and a.dt = '2009-10-15'


--如果两库不同机,先链接。 

不同服务器数据库之间的数据操作

--创建链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' 

--查询示例 
select * from ITSV.数据库名.dbo.表名 

--导入示例 
select * into 表 from ITSV.数据库名.dbo.表名 

--以后不再使用时删除链接服务器 
exec sp_dropserver  'ITSV ', 'droplogins ' 

--连接远程/局域网数据(openrowset/openquery/opendatasource) 
--1、openrowset 

--查询示例 
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--生成本地表 
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--把本地表导入远程表 
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
select *from 本地表 

--更新本地表 
update b 
set b.列A=a.列A 
 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b 
on a.column1=b.column1 

--openquery用法需要创建一个连接 

--首先创建一个连接创建链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
--查询 
select * 
FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
--把本地表导入远程表 
insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
select * from 本地表 
--更新本地表 
update b 
set b.列B=a.列B 
FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
inner join 本地表 b on a.列A=b.列A 

--3、opendatasource/openrowset 
SELECT   * 
FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
--把本地表导入远程表 
insert opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 
select * from 本地表  


--然后 
insert into 机器名.BNEW..c select cid , dt , ent from a where dt = '2009-10-15'

insert into 机器名.BNEW..d select b.CID , substring(ivent,1,len(ivent)-3),qu from a , b where a.cid = b.cid and a.dt = '2009-10-15'

#21






create table A(CID nvarchar(10),DT datetime,ENT nvarchar(10))
go
insert into A select 
'001','2009-10-15','023' union select 
'002','2009-10-16','198'

create table B(CID nvarchar(10),ivent nvarchar(20),qu nvarchar(10))
go
insert into B select
'001','345678000','2' union select 
'001','456789240','6' union select 
'002','789567124','1' union select 
'002','123456564','2' union select 
'002','345678976','4' 


create table C(ID nvarchar(10),ddata datetime,cuscode nvarchar(10))
go
create table D(ID nvarchar(10),cinv nvarchar(10),quantity nvarchar(10))
go


declare @startdate datetime

select @startdate='2009-10-15'

insert into c
select cid,dt,ENT from a where dt = @startdate 

insert into d
select cid,left(ivent,len(ivent)-3),qu from b where cid in (select cid from a where dt = @startdate)


select * from c
select * from d

/*
ID         ddata                                                  cuscode    
---------- ------------------------------------------------------ ---------- 
001        2009-10-15 00:00:00.000                                023

(所影响的行数为 1 行)

ID         cinv       quantity   
---------- ---------- ---------- 
001        345678     2
001        456789     6*/
drop table a,b,c,d

#22




--把表A插入表C
insert into 表C(id,ddate,cuscode) select cid,dt,ent from 表A where DT='2009-10-15'

--把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D
insert into D(id,ddate,cuscode)
select a.cid,substring(b.ivent,1,len(b.ivent)-3),b.qu from A,B  where a.cid=b.cid and a.DT='2009-10-15'


#23


表C中还有一列flag 需要插入固定值 1怎么写进去

#24



insert  c(flag,id,ddata,cuscode)select 1,* from #t where dt='2009-10-15'
insert  d(id,cinv,quantity)select b.* from #t a ,#t1 b where dt='2009-10-15' and a.cid=b.cid


#25


引用 23 楼 rmrmrm 的回复:
表C中还有一列flag 需要插入固定值 1怎么写进去

插入常量的时候直接写入常量就可以了,例如: 
insert into 表A(col) select 1

#26


insert into 表C(id,ddate,cuscode,flag) select cid,dt,ent,1 from 表A where DT='2009-10-15'

#27


再问 还需要插入一列 AUTOID 是递增升序排列的怎么加入?

#28


引用 27 楼 rmrmrm 的回复:
再问 还需要插入一列 AUTOID 是递增升序排列的怎么加入?


自增列吗??

#29




select cid,dt,ent,1,identity(int,1,1) taoistong
into #taoistong
from 表A where DT='2009-10-15'



insert into 表C(id,ddate,cuscode,flag,autoid)
select * from #taoistong

 

#30


是的

#31


引用 30 楼 rmrmrm 的回复:
是的


导入的时候选择保留标识 然后一样的导

#32


表A中没有自增列啊 表C有 导入的时候提示AUTOID不能为空 

#33


sqlserver里,自动增加不用在sql里写,数据库会自动增加的,不用写
也就是说,insert语句里不用写id

试一下吧,sqlserver的自增量和ORACLE不同,不用另外写,能自动加的


但是我这里插入的时候 自增列为什么提示我不能插入空值呢????

#34


insert 的时候不要加ID
insert into 表C(ddate,cuscode) select dt,ent from 表A where DT='2009-10-15'

#35


引用 34 楼 navy887 的回复:
insert 的时候不要加ID
insert into 表C(ddate,cuscode) select dt,ent from 表A where DT='2009-10-15'


ID不是自增列  autoID是自增列    autoid 我是没写进去啊 但是执行的时候提示 不能再autoID中插入NULL值 

#36


引用 35 楼 rmrmrm 的回复:
引用 34 楼 navy887 的回复:
insert 的时候不要加ID
insert into 表C(ddate,cuscode) select dt,ent from 表A where DT='2009-10-15'



ID不是自增列  autoID是自增列    autoid 我是没写进去啊 但是执行的时候提示 不能再autoID中插入NULL值


你确定是自增列?如果是自增列的话,不会报错的

#37


类型是INT的 不是自增列吗

#38


引用 37 楼 rmrmrm 的回复:
类型是INT的 不是自增列吗

int 是说他的类型是数值型,不一定 是自增列 
 

#1


条件是什么?

#2


--希望楼主给出测试数据 
这样下面的高手会帮你很快解决问题~

#3


引用楼主 rmrmrm 的回复:
表A中有 主键CID  日期 DT  客户ACCOUNT  表B中有主见CID(表B是表A的关联表通过CID关联) 存货 invt  数量 SL
通过查询日期  把表A和表B中符合条件的数据分别插入表C 和表D  在表C和表D中他们的字段名称不一样。

最好给出表结构,测试数据,计算方法和正确结果.

#4


INSERT C(COL,COL1..)SELECT A.* FROM A WHERE 条件

#5


insert into c ... select a...,b... from a , b where a.cid = b.cid
insert into d ... select a...,b... from a , b where a.cid = b.cid

#6


拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) 
insert into b(a, b, c) select d,e,f from a; 

#7


引用 5 楼 dawugui 的回复:
insert into c ... select a...,b... from a , b where a.cid = b.cid
insert into d ... select a...,b... from a , b where a.cid = b.cid
呵呵,在猜测当中,

#8


insert into 表C(col1,col2...)
select col1,col2... from 表A where .........

?

#9


就按照上面的格式来 前后字段一一对应 需要条件的话在后面加

insert into b(a, b, c) select d,e,f from a where ..........

#10


引用 9 楼 fredrickhu 的回复:
SQL code就按照上面的格式来 前后字段一一对应 需要条件的话在后面加insertinto b(a, b, c)select d,e,ffrom awhere ..........

up

#11




declare @startdate datetime
declare @enddate   datetime

select @startdate='2009-10-01'
select @enddate='2009-10-30'

insert into c
select cid,dt,account from a where dt between @startdate and @enddate

insert into d
select cid,invt,sl from b where cid in (select cid from a where dt between @startdate and @enddate)

#12


数据库 ANEW
表A CID         DT          ENT
    001      2009-10-15     023
    002      2009-10-16     198

表B CID      ivent         qu
    001      345678000      2
    001      456789240      6
    002      789567124      1
    002      123456564      2
    002      345678976      4

表C id       ddata         cuscode

表D id       cinv          quantity


通过条件查询DT  把表A插入表C  并把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D

例如  查询 2009-10-15  插入结果如下

表C id       ddata         cuscode
    001      2009-10-15     023

表D id       cinv          quantity
    001      345678           2
    001      456789           6   (注意插入的时候表B中的IVENT要去掉后三位数据)

#13


引用 12 楼 rmrmrm 的回复:
数据库 ANEW
表A CID        DT          ENT
    001      2009-10-15    023
    002      2009-10-16    198

表B CID      ivent        qu
    001      345678000      2
    001      456789240      6
    002      789567124      1
    002      123456564      2
    002      345678976      4

表C id      ddata        cuscode

表D id      cinv          quantity


通过条件查询DT  把表A插入表C  并把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D

例如  查询 2009-10-15  插入结果如下

表C id      ddata        cuscode
    001      2009-10-15    023

表D id      cinv          quantity
    001      345678          2
    001      456789          6  (注意插入的时候表B中的IVENT要去掉后三位数据)
insert into c select cid , dt , ent from a where dt = '2009-10-15'

insert into d select b.* from a , b where a.cid = b.cid and a.dt = '2009-10-15'

#14


insert into c select cid , dt , ent from a where dt = '2009-10-15'
--去掉后三位.
insert into d select b.CID , substring(ivent,1,len(ivent)-3),qu from a , b where a.cid = b.cid and a.dt = '2009-10-15'

#15


--把表A插入表C
insert into 表C(id,ddate,cuscode) select cid,dt,ent from 表A where DT='2009-10-15'

#16


insert into 
   c 
select 
   cid , dt , ent 
from 
   a 
where 
  [datetime] = '2009-10-15'

insert into 
  d 
select 
  b.CID , substring(ivent,1,len(ivent)-3),qu 
from 
  a , b 
where 
  a.cid = b.cid 
and 
  a.[datetime] = '2009-10-15'

#17


--把表A插入表C
insert into 表C(id,ddate,cuscode) select cid,dt,ent from 表A where DT='2009-10-15'

--把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D
insert into D(id,ddate,cuscode)
select a.cid,substring(b.ivent,1,len(b.ivent)-3),b.qu from A,B  where a.cid=b.cid and a.DT='2009-10-15'

#18



create table #t(CID  varchar(3), DT datetime,ENT varchar(5))
insert #t select
    '001',      '2009-10-15'  ,  '023' union all select 
    '002' ,     '2009-10-16'  ,  '198' 
create table #t1(CID  varchar(3), ivent  varchar(15),qu int)
insert #t1 select
    '001',      '345678000',      2  union all select 
    '001',      '456789240',      6 union all select 
    '002',      '789567124',      1 union all select 
    '002',      '123456564',      2 union all select 
    '002',      '345678976',      4 

create table #c( id varchar(3),ddata datetime,cuscode varchar(3))
create table #d( ID  varchar(3), cinv  varchar(15),quantity  int)
 

---------------  语句 -----------------
insert #c(id,ddata,cuscode)select * from #t where dt='2009-10-15'
insert #d(id,cinv,quantity)select b.* from #t a ,#t1 b where dt='2009-10-15' and a.cid=b.cid



----------------- 结果 ---------------
select * from #c
select * from #d

id   ddata                                                  cuscode 
---- ------------------------------------------------------ ------- 
001  2009-10-15 00:00:00.000                                023


(所影响的行数为 1 行)

ID   cinv            quantity    
---- --------------- ----------- 
001  345678000       2
001  456789240       6

(所影响的行数为 2 行)


drop table #t
drop table #t1
drop table #c
drop table #d

#19


insert into #table select * from ....

#20


--如果两库同机 
insert into BNEW..c select cid , dt , ent from a where dt = '2009-10-15'

insert into BNEW..d select b.CID , substring(ivent,1,len(ivent)-3),qu from a , b where a.cid = b.cid and a.dt = '2009-10-15'


--如果两库不同机,先链接。 

不同服务器数据库之间的数据操作

--创建链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' 

--查询示例 
select * from ITSV.数据库名.dbo.表名 

--导入示例 
select * into 表 from ITSV.数据库名.dbo.表名 

--以后不再使用时删除链接服务器 
exec sp_dropserver  'ITSV ', 'droplogins ' 

--连接远程/局域网数据(openrowset/openquery/opendatasource) 
--1、openrowset 

--查询示例 
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--生成本地表 
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 

--把本地表导入远程表 
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
select *from 本地表 

--更新本地表 
update b 
set b.列A=a.列A 
 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b 
on a.column1=b.column1 

--openquery用法需要创建一个连接 

--首先创建一个连接创建链接服务器 
exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
--查询 
select * 
FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
--把本地表导入远程表 
insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
select * from 本地表 
--更新本地表 
update b 
set b.列B=a.列B 
FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
inner join 本地表 b on a.列A=b.列A 

--3、opendatasource/openrowset 
SELECT   * 
FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
--把本地表导入远程表 
insert opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 
select * from 本地表  


--然后 
insert into 机器名.BNEW..c select cid , dt , ent from a where dt = '2009-10-15'

insert into 机器名.BNEW..d select b.CID , substring(ivent,1,len(ivent)-3),qu from a , b where a.cid = b.cid and a.dt = '2009-10-15'

#21






create table A(CID nvarchar(10),DT datetime,ENT nvarchar(10))
go
insert into A select 
'001','2009-10-15','023' union select 
'002','2009-10-16','198'

create table B(CID nvarchar(10),ivent nvarchar(20),qu nvarchar(10))
go
insert into B select
'001','345678000','2' union select 
'001','456789240','6' union select 
'002','789567124','1' union select 
'002','123456564','2' union select 
'002','345678976','4' 


create table C(ID nvarchar(10),ddata datetime,cuscode nvarchar(10))
go
create table D(ID nvarchar(10),cinv nvarchar(10),quantity nvarchar(10))
go


declare @startdate datetime

select @startdate='2009-10-15'

insert into c
select cid,dt,ENT from a where dt = @startdate 

insert into d
select cid,left(ivent,len(ivent)-3),qu from b where cid in (select cid from a where dt = @startdate)


select * from c
select * from d

/*
ID         ddata                                                  cuscode    
---------- ------------------------------------------------------ ---------- 
001        2009-10-15 00:00:00.000                                023

(所影响的行数为 1 行)

ID         cinv       quantity   
---------- ---------- ---------- 
001        345678     2
001        456789     6*/
drop table a,b,c,d

#22




--把表A插入表C
insert into 表C(id,ddate,cuscode) select cid,dt,ent from 表A where DT='2009-10-15'

--把表B中表B.CID=表A.cid 并且 日期等于查询日期的数据插入表D
insert into D(id,ddate,cuscode)
select a.cid,substring(b.ivent,1,len(b.ivent)-3),b.qu from A,B  where a.cid=b.cid and a.DT='2009-10-15'


#23


表C中还有一列flag 需要插入固定值 1怎么写进去

#24



insert  c(flag,id,ddata,cuscode)select 1,* from #t where dt='2009-10-15'
insert  d(id,cinv,quantity)select b.* from #t a ,#t1 b where dt='2009-10-15' and a.cid=b.cid


#25


引用 23 楼 rmrmrm 的回复:
表C中还有一列flag 需要插入固定值 1怎么写进去

插入常量的时候直接写入常量就可以了,例如: 
insert into 表A(col) select 1

#26


insert into 表C(id,ddate,cuscode,flag) select cid,dt,ent,1 from 表A where DT='2009-10-15'

#27


再问 还需要插入一列 AUTOID 是递增升序排列的怎么加入?

#28


引用 27 楼 rmrmrm 的回复:
再问 还需要插入一列 AUTOID 是递增升序排列的怎么加入?


自增列吗??

#29




select cid,dt,ent,1,identity(int,1,1) taoistong
into #taoistong
from 表A where DT='2009-10-15'



insert into 表C(id,ddate,cuscode,flag,autoid)
select * from #taoistong

 

#30


是的

#31


引用 30 楼 rmrmrm 的回复:
是的


导入的时候选择保留标识 然后一样的导

#32


表A中没有自增列啊 表C有 导入的时候提示AUTOID不能为空 

#33


sqlserver里,自动增加不用在sql里写,数据库会自动增加的,不用写
也就是说,insert语句里不用写id

试一下吧,sqlserver的自增量和ORACLE不同,不用另外写,能自动加的


但是我这里插入的时候 自增列为什么提示我不能插入空值呢????

#34


insert 的时候不要加ID
insert into 表C(ddate,cuscode) select dt,ent from 表A where DT='2009-10-15'

#35


引用 34 楼 navy887 的回复:
insert 的时候不要加ID
insert into 表C(ddate,cuscode) select dt,ent from 表A where DT='2009-10-15'


ID不是自增列  autoID是自增列    autoid 我是没写进去啊 但是执行的时候提示 不能再autoID中插入NULL值 

#36


引用 35 楼 rmrmrm 的回复:
引用 34 楼 navy887 的回复:
insert 的时候不要加ID
insert into 表C(ddate,cuscode) select dt,ent from 表A where DT='2009-10-15'



ID不是自增列  autoID是自增列    autoid 我是没写进去啊 但是执行的时候提示 不能再autoID中插入NULL值


你确定是自增列?如果是自增列的话,不会报错的

#37


类型是INT的 不是自增列吗

#38


引用 37 楼 rmrmrm 的回复:
类型是INT的 不是自增列吗

int 是说他的类型是数值型,不一定 是自增列