【发布时间】:2012-02-09 22:07:11
【问题描述】:
我必须查询一个表并将输出打印到一个文本文件中。我有一个对数据库具有 dbo 权限的普通用户登录。我不能使用 bcp 或不能给予任何特殊权限。谁能帮我解决这个问题?
【问题讨论】:
标签: sql sql-server-2008
我必须查询一个表并将输出打印到一个文本文件中。我有一个对数据库具有 dbo 权限的普通用户登录。我不能使用 bcp 或不能给予任何特殊权限。谁能帮我解决这个问题?
【问题讨论】:
标签: sql sql-server-2008
您不能在服务器或其他地方创建文本文件,而只有数据库中的权限。 BCP 有几种替代方案(SQLCLR、xp_cmdshell、sp_OACreate、OPENROWSET 等),但 Windows 比让任何数据库用户写入文件系统更安全一些。想象一下,如果有人对您的数据库运行查询可以写入文件系统? (Some background here.)
这里有一篇文章描述了其他人是如何做到的,以及随后的一些讨论:
对于 CLR 方法,还有一个名为 FileSystemHelper 的 codeplex 项目,它比重新发明轮子更有用。
【讨论】:
如果您手动运行查询,SSMS 可以选择将结果输出到文件 (CTL-Shift-F)
【讨论】: