欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

数据库其间表数据导入

更新时间: 2014-01-05 02:18:00 责任编辑: Author_N1

 

数据库之间表数据导入
SQL2000 数据库之间表数据导入 求脚本处理   (某两个列的值通过计算出来的)
新和旧的数据库结构是一致的,需要导入没有完成或没有终止的单据到新数据库.

如数据库名:yerar2013 ,
注:quantity订单数量,referquantity入库数量,closed 1时为终止了明细。
导入新数据库时 quantity=旧数据库quantity-旧数据库referquantity  并且数量大于0的。
porder订单主表
billid,traderid,billdate,billcode,   ...... 后面N个列
1001  , 3007   , 2013-12-12, po0001 ,......
1002  , 3009   , 2013-12-12, po0002 ,......
1007  , 3006   , 2013-12-12, po0003 ,......

porderdetail订单从表
billid ,itemno,materialid,quantity,referquantity,closed......后面N个列
1001   , 1    , 9001     , 30000  , 25000,  0 , ......
1001   , 2    , 9007     , 28000  , 27000,  1 , ......

1002   , 1    , 9001     , 30000  , 0,  0 , ......
1002   , 2    , 9007     , 28000  , 0,  1 , ......

1007   , 1    , 9001     , 30000  , 30500,  0 , ......
1007   , 2    , 9007     , 28000  , 28000,  0 , ......

新数据库名:year2014
porder订单主表
billid,traderid,billdate,billcode,   ...... 后面N个列
1001  , 3007   , 2013-12-12, po0001 ,......
1002  , 3009   , 2013-12-12, po0002 ,......

porderdetail订单从表
billid ,itemno,materialid,quantity,referquantity,closed......后面N个列
1001   , 1    , 9001     , 5000   , 0,  0 , ......
1002   , 1    , 9001     , 30000  , 0,  0 , ......


--参考方法--
动态生成列名
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM    syscolumns
WHERE   id = OBJECT_ID('表名')
        --AND name NOT IN ( '不希望显式的列' )
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名  ')

--参考方法--
这些脚本是针对你的这句话:因为表中的列名比较多,但我想写脚本时不写列名,减少工作量
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:18:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8215/
本文WWW.DOC100.NET DOC100.NET版权所有。