sql sever 一个表1600万记录导出多个excel表!
打算每个excel 2万记录,如何自动处理?
提供另外一个思路:
--创建一个空的excel表格或复制一个
exec xp_cmdshell 'copy e:\templates\temp.xls e:\export\temp.xls'
--导出到第一个页签
insert into OPENROWSET(
'Microsoft.Jet.OLEDB.4.0',
'Excel 10.0;Database=d:\export\temp.xls;;HDR=YES',
'SELECT * FROM [Sheet1$]')
select * from table_part1
--导出到第二个页签
insert into OPENROWSET(
'Microsoft.Jet.OLEDB.4.0',
'Excel 10.0;Database=d:\export\sales.xls;;HDR=YES',
'SELECT * FROM [Sheet2$]')
select * from table_part2
part1,part2...partn采用分页方式
注意excel版本,本例中是Excel10.0
可以用BCP导出,然后在你的SQL上做文档,分批导出你可以参考分页处理方式,如用行号,或者本身都有的记录号等
导出命令见下面,仅是示范命令,没考虑分页
EXEC master..xp_cmdshell 'bcp "SELECT * FROM 数据库名.dbo.表名 ORDER BY 某字段" queryout "c:\book1.xls" /c -/S"服务器名" /U"用户名" -P"密码"'