结构如下:
有三张表:tbTotal,tbImport,tbExport,tbTotal与tbExport的结构相同,tbImport中的字段可能与二者不同,但有关键字字段相同。tbTotal:id,t1,t2
tbImport:id,i1,i2,i3...
tbExport:id,t1,t2解释:tbTotal中可能有1万条数据,tbImport中可能有500条数据,它们以id字段相连,tbImport中的id列的数据包括在tbTotal中。目的:如果tbImport中的id列与tbTotal中的id列相等,就将tbTotal中的t1字段的值替换成为tbImport中的i1字字段的值,t2替换成为i2的值,然后,将发生变化的行,即替换后的行导入到tbExport中,最后,将tbExport所有的数据导出至EXCEL,比如d:\export.xls
结果:tbTotal、tbImport中的数据保持不变,tbExport中的数据为tbTotal与tbImport中合并数据后的行。
实际存有数据的就是tbTotal与tbImport,tbExport是否应该存在,或者用一个临时表来代替也行。希望能在一个存储过程中实现上述功能
有三张表:tbTotal,tbImport,tbExport,tbTotal与tbExport的结构相同,tbImport中的字段可能与二者不同,但有关键字字段相同。tbTotal:id,t1,t2
tbImport:id,i1,i2,i3...
tbExport:id,t1,t2解释:tbTotal中可能有1万条数据,tbImport中可能有500条数据,它们以id字段相连,tbImport中的id列的数据包括在tbTotal中。目的:如果tbImport中的id列与tbTotal中的id列相等,就将tbTotal中的t1字段的值替换成为tbImport中的i1字字段的值,t2替换成为i2的值,然后,将发生变化的行,即替换后的行导入到tbExport中,最后,将tbExport所有的数据导出至EXCEL,比如d:\export.xls
结果:tbTotal、tbImport中的数据保持不变,tbExport中的数据为tbTotal与tbImport中合并数据后的行。
实际存有数据的就是tbTotal与tbImport,tbExport是否应该存在,或者用一个临时表来代替也行。希望能在一个存储过程中实现上述功能
EXEC master..xp_cmdshell 'bcp select m.* from tbImport m , tbTotal n where m.id = n.id out d:\export.xls -c -q -S"servername" -U"sa" -P""'--如果不行,就生成表tmp
select m.* into tmp from tbImport m , tbTotal n where m.id = n.id
EXEC master..xp_cmdshell 'bcp tmp out d:\export.xls -c -q -S"servername" -U"sa" -P""'
from tbTotal m, tbImport n
where m.id = n.id帮上面的SQL语句替换成这句。
即:
--直接用bcp
EXEC master..xp_cmdshell 'bcp select m.除了t1,t2的起他字段,n.i1 t1 , n.i2 t2
from tbTotal m, tbImport n
where m.id = n.id
out d:\export.xls -c -q -S"servername" -U"sa" -P""'--如果不行,就生成表tmp
select m.除了t1,t2的起他字段,n.i1 t1 , n.i2 t2 into tmp
from tbTotal m, tbImport n
where m.id = n.idEXEC master..xp_cmdshell 'bcp tmp out d:\export.xls -c -q -S"servername" -U"sa" -P""'
这个是什么意思,能不能给解释一下,嘿嘿
你只是个查询,又不需要替换原来表中的数据,对吧?