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

SQL如何分批导出数据?
数据格式为
A B C
1222 张三 30000
1223 李四 45000
1222 王五 12000
.
.
.
1688 毛久 21533

要把A列相同的导出到一个表EXCEL
比如导出所有A列为1222的数据,表名为1222
一共有几百个表一个个导出不现实,所以只有请教各位高手了。

------解决方案--------------------
SQL code
declare @path sysname;
set @path='D:\';    --此为服务器的路径

DECLARE @A sysname;
DECLARE @cmd nvarchar(4000);

DECLARE cur cursor FOR
    SELECT DISTINCT A FROM [1222];

OPEN cur;
FETCH NEXT FROM cur INTO @A;

WHILE @@FETCH_STATUS=0
  BEGIN
     SET @cmd = N'BCP "SELECT * FROM 数据库名.dbo.[1222] WHERE A=''' + @A + '''"';
     SET @cmd = @cmd+' queryout ' + @path+@A+'.xls -c -Usa -Ppassword';

     EXEC xp_cmdshell @cmd;
     FETCH NEXT FROM cur INTO @A;
  END

CLOSE cur;
DEALLOCATE cur;