我想把如下查询A语句的记录集插入到icbatchnorule表,如果查询A语句后记录多的话,有没有快速的办法让它自动插入到icbatchnorule表中? 请教各位。
各注:icbatchnorule表的Fitemid字段是唯一值,不会重复。
A:select * from materials where Fbatchman=1 and fclsid in (1,3) and fitemid not in (select fitemid from icbatchnorule)
B: insert into ICBatchNoRule(FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail)
Values(1,28734,8,0,'','',6,'x','',1)
------解决方案--------------------
lz:基于你的问题的解答:
1。你可以这样保存结果到你的目的表中:
insert into ICBatchNoRule(FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail)
Values(1,28734,8,0,'','',6,'x','',1)
select * from materials where Fbatchman=1 and fclsid in (1,3) and fitemid not in (select fitemid from icbatchnorule)
先试下如果有问题再贴出来。
希望你成功。
------解决方案--------------------
如果 Fitemid 是自增列。那么你就没必要自己插入一个字段。你再插入其他数据的时候他就自动增加
如果 Fitemid [email protected] 插入即可。
------解决方案--------------------
- SQL code
create proc ProcName[(ParmName ParmType)]asbegininsert into ICBatchNoRule(FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail)SELECT FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetailfrommaterials where Fbatchman=1 and fclsid in (1,3) and fitemid not in (select fitemid from icbatchnorule)end
------解决方案--------------------
icbatchnorule表已经存在:
INSERT INTO icbatchnorule
select FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail from materials where Fbatchman=1 and fclsid in (1,3) and fitemid not in (select fitemid from icbatchnorule)
icbatchnorule表不存在:
select FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail
INTO icbatchnorule from materials where Fbatchman=1 and fclsid in (1,3) and fitemid not in (select fitemid from icbatchnorule)
------解决方案--------------------
- SQL code
/*用 “insert into tablename(col1, col2)select col1='1111', col2='222' from othertable”模式*/insert into ICBatchNoRule(FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail)select FID,Fitemid, ............ --这里写入对应上一行对应位置的字段from materialswhere Fbatchman=1 and fclsid in (1,3) and fitemid not in (select fitemid from icbatchnorule)
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
--递增序列
declare @idd int,
--获取当前最大序列号
select @idd=max(FPropertyid) from FPropertyid
--逐条执行
insert into ICBatchNoRule(FID,Fitemid,FPropertyid,Fuseshortnumber,FFormatDate,FSelDefine,FWidth,Fcharacter,FSubcharacter,FDetail)
SELECT FID, @idd+1,......
--如果多条记录一次执行,你用游标,上述字段全部设置变量