server输出几行 sql_如何将SQL Server存储过程的输出存储在.txt文件中

我有这个存储过程;我正在打印ssms中变量的值。

相反,我希望将此结果存储在

.txt

文件。

注意:我不想使用SSMS选项来执行此操作:右键单击结果,然后将结果另存为。我希望直接在存储过程本身中使用任何SQL代码/内置函数来完成这项工作。

CREATE PROCEDURE [dbo].[usp_printresulttofile]

AS

BEGIN

DECLARE @var NVARCHAR(MAX) = ''

SET @var = 'print this data in txt file'

PRINT 'Data is : ' + @var

/* SQL query here to store result of Print statement in text file */

END

EXEC [dbo].[usp_printresulttofile]

在此共享更新的工作SP,以便对有类似要求的人有用,谢谢@david browne-microsoft

ALTER PROCEDURE [dbo].[usp_printresulttofile]

AS

BEGIN

DECLARE @fileTimeStamp varchar(200) = convert(varchar,getDate(), 112 )+'_'+ Replace(convert(varchar,getDate(), 114 ),':','') -- select convert(varchar, getdate(), 121)

DECLARE @fileExtension varchar(5) = 'txt'

DECLARE @var NVARCHAR(MAX) = ''

SET @var = 'print this data in txt file'

PRINT 'Data is : ' + @var

declare @fn varchar(500) = 'c:/log/SP_output_'+@fileTimeStamp+'.'+@fileExtension;

declare @cmd varchar(8000) = concat('echo ', @var, ' > "', @fn, '"');

print @cmd

exec xp_cmdshell @cmd, no_output

set @cmd = concat('type "', @fn, '"');

print @cmd

exec xp_cmdshell @cmd;

END

GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值