VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 815|回复: 3

SQL输出为excel文件的问题

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-3 11:30:01 | 显示全部楼层 |阅读模式
微软给出的答案是:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'

现在有两个问题:
第一.由于用到系统的扩展存储过程,涉及到一个权限的问题,怎么配置普通帐号使之能调用系统的存储过程。
第二.这样导出的excel为纯数据内容,怎么样加入字段名
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-6-25 11:00:02 | 显示全部楼层
SET ANSI_NULLS ON
GO
SET ANSI_WARNINGS ON
GO
导出的语句
SET ANSI_NULLS OFF
GO
SET ANSI_WARNINGS OFF
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-6-29 13:00:01 | 显示全部楼层
创建一个存储过程, 用execute as 指定存储过程内部使用sysadmin用户.
然后授予普通用户对此存储过程的execute权限即可.
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-6-29 14:45:01 | 显示全部楼层
第2个, 因为bcp导出的本来就是文本文件, 只是文件名用的xls而已, 而bcp的方式也决定了无法直接加字段名, 所以你只能改方式, 或者是改bcp为导出查询, 然后在查询中用union all来关联字段名.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表