日期:2014-05-18  浏览次数:20543 次

如何批插入??
如有这样的语句,怎么简化插入,性能最优/

insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-记录ID',0,7,1);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-销售单',100,7,2);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-批号',100,7,3);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-商品号',100,7,4);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-名称',100,7,5);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-规格',100,7,6);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-单位',100,7,7);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-数量',100,7,8);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-单价',100,7,9);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-销售金额',100,7,10);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-价格类型',100,7,11);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-销售日期',100,7,12);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-门店名',100,7,13);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-条码',100,7,14);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-商品详情',100,7,15);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-销售说明',100,7,16);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-销售员',100,7,17);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-是否分配',100,7,18);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-是否积分',100,7,19);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-客户号',100,7,20);
insert into listviewCol(colName ,colwidth,colwidthType,colNO) values('销售列表-录入日期',100,7,21);
.................
谢谢..

------解决方案--------------------
SQL code
insert into listviewCol(colName ,colwidth,colwidthType,colNO) 
select '销售列表-记录ID',0,7,1 union all
select '销售列表-销售单',100,7,2 union all 
.........
select '销售列表-批号',100,7,3

------解决方案--------------------
方式的改变对性能没有影响。
性能取决于磁盘IO以及库结构等。如果数据量大且有索引时插入会慢,调整的方式基本上都是降低数据量和调整磁盘IO。
------解决方案--------------------
SQL code
--如果要插入的记录均包含前缀字符串 "销售列表-" 的话,你可以先不将其插入!
--后面去更新成 "销售列表-"+colName
--不过:我觉得我这也是多此一举!完全没有必要!
CREATE TABLE listviewCol(colName VARCHAR(30),colwidth INT, colwidthType INT, colNO INT)


INSERT INTO listviewCol(colName ,colwidth,colwidthType,colNO) 
SELECT '记录ID',0,7,1 UNION ALL
SELECT '销售单',100,7,2 UNION ALL 
SELECT '批号',100,7,3 UNION ALL 
SELECT '商品号',100,7,4 UNION ALL 
SELECT '名称',100,7,5 UNION ALL 
SELECT '规格',100,7,6 UNION ALL 
SELECT '单位',100,7,7 UNION ALL 
SELECT '数量',100,7,8 UNION ALL 
SELECT '单价',100,7,9 UNION ALL 
SELECT '销售金额',100,7,10 UNION ALL 
SELECT '价格类型',100,7,11 UNION ALL 
SELECT '销售日期',100,7,12 UNION ALL 
SELECT '门店名',100,7,13 UNION ALL 
SELECT '条码',100,7,14 UNION ALL 
SELECT '商品详情',100,7,15 UNION ALL 
SELECT '销售说明',100,7,16 UNION ALL 
SELECT '销售员',100,7,17 UNION ALL 
SELECT '是否分配',100,7,18 UNION ALL 
SELECT '是否积分',100,7,19 UNION ALL 
SELECT '客户号',100,7,20 UNION ALL 
SELECT '录入日期',100,7,21;

UPDATE listviewCol
SET colName ='销售列表-'+colName


SELECT * FROM listviewCol;

------解决方案--------------------
SQL code
INSERT INTO TB 
SELECT .... UNION ALL
SELECT .... UNION ALL
SELECT .... UNION ALL
SELECT .... UNION ALL
SELECT .... UNION ALL
SELECT .... 
GO

------解决方案--------------------