表 pdzb2 已经建立了。~~~~~~~~~~~~~~
-----------------------------------华丽的分割线-------------------------------------------
----声明需要的变量
declare
@sql varchar(2000),
@TypeID int,
@gysmz varchar(100)
---确认第一个供应商编码 和 供应商名字
select @TypeID=min(供应商编码) from pdzb2
select @gysmz=供应商名称 from pdzb2 where 供应商编码 =@typeid
while exists(select 1 from pdzb2 where 供应商编码=@TypeID)
begin
----拼凑需要执行的语句
set @sql='bcp "select * from (select'+'''供应商编码'''+'as 供应商编码,'+'''供应商名称'''+' AS 供应商名称,'+'''部门名称'''+'AS 部门名称,'
+'''类别名称'''+'AS 类别名称,'+'''商品编码'''+'AS 商品编码,'+'''商品条码'''+'AS 商品条码,'+'''商品名称'''+'AS 商品名称,'
+'''单位'''+'AS 单位,'+'''商品规格'''+'AS 商品规格,'+'''成本'''+'AS 成本,' +'''当前售价'''+'AS 当前售价,'+'''库存'''+'AS 库存'+' '
-----在xls文件中显示列名 +内容
set @sql=@sql+'union all select cast(供应商编码 as varchar(10)),供应商名称,部门名称,类别名称,商品编码,商品条码,商品名称,单位,商品规格,cast(成本 as varchar(10)),cast(当前售价 as varchar(10)),cast(库存 as varchar(10))from pdzb2 where 供应商编码='''+cast(@typeid as varchar(10))+''')a " queryout F:\pddata\'+cast(@TypeID as varchar(10))+@gysmz+'.xls -c -S"haihuangwomei" -U "你的账号" -P "你的密码" '--查询满足条件的记录并保存到xls文件中
---print @sql
EXEC master..xp_cmdshell @sql
---WAITFOR delay '00:00:10'
---获得下一个供应商编码和 供应商名称
select @TypeID=isnull(min(供应商编码),@typeid+1) from pdzb2 where 供应商编码>=@TypeID+1
select @gysmz=供应商名称 from pdzb2 where 供应商编码=@typeid
end
-------------------------------华丽的分割线------------------------------------
我也是在别人的基础上 改造的 改造中遇到不少问题 ,最严重就是 导出时 部分 成功 部分不成功 组后发现 是@typeid的 数据类型导致的 我原来是 varchar 后来改为 int 解决问题。