数据库之间表数据导入
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,&n