在sql中不使用bcp创建文本文件

时间:2012-02-09 22:07:11

标签: sql sql-server-2008

我必须查询表并在文本文件中打印输出。我有一个普通的用户登录,对数据库有dbo权限。我不能使用bcp或不能给予任何特殊权限。任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

您无法在服务器上或其他地方仅使用数据库中的权限创建文本文件。 BCPSQLCLRxp_cmdshellsp_OACreateOPENROWSET等等有几种替代方案,但Windows比让任何数据库更安全一点用户写入文件系统。想象一下,如果任何针对您的数据库运行查询的人都可以写入文件系统? (Some background here。)

以下是一些描述其他人如何做到这一点的文章,以及随后的一些讨论:

http://www.simple-talk.com/sql/t-sql-programming/reading-and-writing-files-in-sql-server-using-t-sql/

http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/how-to-copy-data-append-data-into-files-

对于CLR方法,还有一个名为FileSystemHelper的编码复合项目,它比重新发明轮子更有用。

答案 1 :(得分:0)

如果您手动运行查询,SSMS可以选择将结果输出到文件(CTL-Shift-F)