【发布时间】:2010-03-12 16:50:48
【问题描述】:
有没有办法将 TSQL / 存储过程返回的结果直接写入文本文件(不使用 CTRL + T => Result to Text)。因为这个 TSQL 在我的一个服务例程中是动态的。每当我调用此服务例程时,它都会生成 SQL 语句 => 执行,在这里我想通过将文件路径作为参数传递来将其定向到文本文件。
如何做到这一点?
谢谢
【问题讨论】:
标签: sql-server tsql
有没有办法将 TSQL / 存储过程返回的结果直接写入文本文件(不使用 CTRL + T => Result to Text)。因为这个 TSQL 在我的一个服务例程中是动态的。每当我调用此服务例程时,它都会生成 SQL 语句 => 执行,在这里我想通过将文件路径作为参数传递来将其定向到文本文件。
如何做到这一点?
谢谢
【问题讨论】:
标签: sql-server tsql
这样的事情会起作用:
declare @cmd varchar(500)
select @cmd = 'osql -U -P -S -Q"select * from myTable" -o"c:\output.txt" -w500'
exec master..xp_cmdshell @cmd
您也可以通过创建基于 C# 的存储过程并通过 CLR 执行它来实现。
【讨论】:
xp_cmdshell 的访问权限。在这种情况下,从 SQL Server 外部(在命令行上)执行是您的最佳选择。