sqlserver2008将一个811列的表导出为csv文件

背景:全国二甲医院绩效审查需上传病案数据报表,但其字段有811列之多,虽然建表时提示超过sql最大行字节8060,但对表进行插入数据正常,但导出存在问题。

一.通过可视化管理工具右键导出数据
图片说明

导出结果总是出现单行或者多行的错乱
图片说明

二.以存储过程脚本导出,实现自动定时导出,终极目标

参考https://www.cnblogs.com/ke10/archive/2012/12/26/sqlexportfile.html
大神的解决方案,但是套用的时候,一直调用错误返回bcp的指令集,没有生成文件。

现在急求技术大牛能给个将811列表导出csv的过程脚本,脚本,脚本,只求脚本,什么右键另存为、右键导出烦请绕道,不要盖楼感激不尽。

用数据库专门的导出CSV函数

https://blog.csdn.net/qq_36422591/article/details/79864963

很简单,存为mdb,用ACCESS打开,就可以轻松弄到excel文件中了。

使用数据导出向导,保存SSIS包,后面可以重复利用,可手动调用,也可用代理定时调用

图片说明

1.sql server 开启bcp这个功能

sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure

2.导出csv格式文件

exec master..xp_cmdshell 'bcp "select * from [WGTQDB].[dbo].[GLYXDATA1]" queryout c:\abc.csv -c -T -t "," '

注意 查询表的时候必须要加上数据库名

3.创建存储过程

create proc [dbo].[dearda_proc] 
as
begin
---导出数据
declare @sql varchar(500)
declare @path varchar(500)
set @path='"C:\GLYXDATA1.'+convert(varchar(10),getdate(),120)+'.csv"'
set @sql='bcp "select * from [WGTQDB].[dbo].[GLYXDATA1] " queryout '+ @path +' -c -T -t ","';
exec master..xp_cmdshell @sql
end

4.创建作业(没有08版的sql server 将就看,作业大体就是这样)

效果展示: