sql - 如何在不更新数据表的情况下查看程序的执行结果?
问题描述
$UPDATE
我在里面有存储过程。我想在不更改表的情况下查看执行此过程的结果。
我正在考虑 PRINT 和 RAISERROR,但我没有找到正确的方法 - 我是否需要修改我的程序,或者我可以专门执行我的程序。
我的一些程序代码:
...
UPDATE Table SET DateChange = @DateCh
程序执行
GO
DECLARE @UF int
EXECUTE @UF = [dbo].[sp_GoProc]
GO
在输出中,我希望看到表中的更新值或更新的部分表。
解决方案
由于这是出于测试目的,请在您的存储过程中尝试此操作
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 的输出有更改,但在这两种情况下它们都会回滚。
推荐阅读
- flutter - 如何检查数组中是否存在元素,如果存在则更新它
- msbuild - 我的 VS 项目不断使用 msbuild 重建
- c - C 中的 char** 数组越界行为
- mysql - 从非sql查询获取结果集
- c# - Moq 如何模拟数据以进行模式匹配?
- java - 来自 Java 的 CloudFlare (Memberful) 发布请求会产生 403 错误
- java - 如何在使用 PowerMockito 测试框架进行 junit 测试时将接口引用注入 Spring Controller?
- reactjs - 如何创建具有依赖项的 callbackRef
- python - 熊猫和元组检查
- python - 使用递归查找出现奇数次的整数