sqlserver利用存储过程批量导出excel

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: sqlserver利用存储过程批量导出excel
begin
DECLARE @shenfenzheng VARCHAR(20)
declare @file_path varchar(200);--导出EXCEl文件的路径;
declare @file_name varchar(200);--导出EXCEl的文件名;
declare @exec_sql  varchar(8000);--SQL语句;
declare @exec_sql2 varchar(8000);--SQL语句;
set @file_path = 'C:\123\'
DECLARE order_cursor CURSOR 
FOR SELECT cardnum FROM mdjhz.dbo.dealngUser
OPEN order_cursor
fetch next from order_cursor into @shenfenzheng
while @@fetch_status<>-1
IF ISNULL(@shenfenzheng,'')<>''
begin
set @file_name = @shenfenzheng+'.xls'
set @exec_sql = 'select CONVERT(varchar(10),V.Vouchdate,120) ''日期'',D.dealuserName ''客户'',''''''''+D.cardnum ''身份证号'',D.address,D.jyxm,(select username from mdzjhz.dbo.tbuser2 u2 where u2.userlogo2=v.dealingcharacterid) ''组织机构'',(select VouchTypename from mdzjhz.dbo.VouchType where VouchTypeID=V.VouchTypeID) as ''单证类型'',(select operationname from mdzjhz.dbo.operationtype where operationlogo=v.operationid) ''业务明细'' ,V.principal ''金额'',(select statename from mdzjhz.dbo.Vouchstate where state=V.state) as ''状态'' , V.creditVouchID ''单证编号'',V.creditoperationID ''业务编码'',''''''''+V.bankAccount ''卡号'' from mdzjhz.dbo.creditVouch V,mdzjhz.dbo.dealingUser D where V.dealinglogo=D.dealuserlogo and V.state <>0 and ((V.VouchDate >='''' or ''''='''') and (V.VouchDate <'''' or ''''='''')) and V.creditVouchID like ''%%'' and V.creditoperationID LIKE ''%%''  and ((select statename from mdzjhz.dbo.Vouchstate where state=V.state) = ''--显示全部--'' or ''--显示全部--''=''--显示全部--'')    and ((select VouchTypename from mdzjhz.dbo.VouchType where VouchTypeID=V.VouchTypeID) = ''--显示全部--'' or ''--显示全部--''=''--显示全部--'') and ((select operationname from mdzjhz.dbo.operationtype where operationlogo=v.operationid)= ''--显示全部--'' or ''--显示全部--''=''--显示全部--'') and (D.cardnum like '''+@shenfenzheng+''') and ((select officename from mdzjhz.dbo.office where officelogo=V.officelogo)=''--显示全部--'' or ''--显示全部--''=''--显示全部--'')  and isnull((select username from mdzjhz.dbo.tbuser2 u2 where u2.userlogo2=v.dealingcharacterid),'''') like ''%%''  order by V.VouchDate'
set @exec_sql2 = ' bcp "'+@exec_sql+'" queryout "'+@file_path+''+@file_name+'" -c -T -S "PC-2020030906\DDD" -U "sa" -P "123456"';
exec master..xp_cmdshell @exec_sql2
---waitfor time '0:0:1'
fetch next from order_cursor into @shenfenzheng
---waitfor delay '0:0:0.5'
end
else
begin
fetch next from order_cursor into @shenfenzheng
end
close order_cursor
deallocate order_cursor
end
go

总结:


1、因为C盘为固态硬盘,写入速度应该快,其实经过测试并没发现快。写入c盘的话,需要把赋予everyone的文件夹写权限。


2、cardnum查询出来的身份证号码有40000+,写excel时,到了900多条ssms就卡死了。不知道啥原因。


3、第一次用存储过程,sql语句必须用单引号包含起来,语句中的原有单引号,需要使用两个单引号替换(不是双引号)。


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
14天前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
19天前
|
Java
java导出复杂excel
java导出复杂excel
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
本文介绍了如何批量快速查询手机号码归属地并进行分类。首先,通过提供的百度网盘或腾讯云盘链接下载免费查询软件。其次,开启软件,启用复制粘贴功能,直接粘贴号码列表并选择高速查询。软件能在极短时间内(如1.76秒内)完成40多万个号码的查询,结果包括归属地、运营商、邮箱和区号,且数据准确。之后,可直接导出数据至表格,若数据超过100万,可按省份、城市及运营商分类导出。文章还附带了操作动画演示,展示全程流畅的处理大量手机号码归属地查询的过程。
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
|
8天前
|
文字识别
分享:如何ocr识别身份证复印件并导出至excel表格 ? 图片批量识别导出excel表格应用,图片批量识别转excel表格的方法
该软件是一款OCR身份证识别工具,能批量处理图片,自动提取身份证信息并导出为Excel。支持百度网盘和腾讯云盘下载。用户界面直观,操作简单,适合新手。识别过程包括:打开图片、一键识别、导出结果。特别注意,此程序仅适用于身份证识别,不适用于其他类型的图片识别。
分享:如何ocr识别身份证复印件并导出至excel表格 ? 图片批量识别导出excel表格应用,图片批量识别转excel表格的方法
|
16天前
|
JSON Rust 前端开发
【sheetjs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了如何使用`sheetjs`的`xlsx`库在前端实现Excel的导出和上传。项目依赖包括Vite、React、SheetJS和Arco-Design。对于导出,从后端获取JSON数据,通过`json_to_sheet`、`book_new`和`writeFile`函数生成并下载Excel文件。对于上传,使用`read`函数将上传的Excel文件解析为JSON并发送至后端。完整代码示例可在GitHub仓库[fullee/sheetjs-demo](https://github.com/fullee/sheetjs-demo)中查看。
60 10
|
18天前
|
开发框架 资源调度 JavaScript
uniapp本地导出表格excel
uniapp本地导出表格excel
|
19天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
42 0
|
19天前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
16 1
|
19天前
|
JavaScript
vue导出excel无法打开问题
vue导出excel无法打开问题
|
19天前
|
easyexcel BI
excel合并列导出文件
excel合并列导出文件