我的业务应用程序仅支持报告来自SQL Server的选定数据。在一个业务流程中,我有一个非常复杂的存储过程,该过程使用其他存储的procs进行了处理,旨在将结果打印为完成的日志。我想要捕获该打印并将其选择为varchar(max),以便我的应用程序可以处理该数据并显示给用户。 这是TSQL代码中描述的示例方案:
create procedure sp_test_print_out as begin Print 'Test'; print 'Test 1'; end go create procedure sp_test_print_out_to_select as declare @printOut varchar(max) set @printOut = exec sp_test_print_out --How I can achieve this ? select @printOut end go exec sp_test_print_out_to_select
您可以尝试在输出参数中设置值
create procedure sp_test_print_out @printMessages varchar(max) output as begin set @printMessages='Test' Print 'Test'; set @printMessages= @printMessages + CHAR(10) set @printMessages= @printMessages + 'Test 1' print 'Test 1'; end go create procedure sp_test_print_out_to_select as begin declare @printOut varchar(max) exec sp_test_print_out @printOut output -- can be achieved using output parameter ? select @printOut end go exec sp_test_print_out_to_select