首页 > 解决方案 > 如何在不更新数据表的情况下查看程序的执行结果?

问题描述

$UPDATE我在里面有存储过程。我想在不更改表的情况下查看执行此过程的结果。

我正在考虑 PRINT 和 RAISERROR,但我没有找到正确的方法 - 我是否需要修改我的程序,或者我可以专门执行我的程序。

我的一些程序代码:

...
UPDATE Table SET DateChange = @DateCh

程序执行

GO
DECLARE @UF int
EXECUTE @UF = [dbo].[sp_GoProc] 
GO

在输出中,我希望看到表中的更新值或更新的部分表。

标签: sqlsql-serverstored-proceduressql-server-2016

解决方案


由于这是出于测试目的,请在您的存储过程中尝试此操作

Begin tran
UPDATE Table SET DateChange = @DateCh
Select * from Table where DateChange = @DateCh
Rollback

或者

您可以保持您的存储过程未修改并将执行包装在事务块中

Begin tran

DECLARE @RC int
EXECUTE @RC = [dbo].[sp_GoProc] 

Select * from Table

Rollback

当您执行存储过程时,您将看到 Table 的输出有更改,但在这两种情况下它们都会回滚。


推荐阅读