sql - 使用事务回滚进行测试

标签 sql sql-server tsql testing

我刚刚发现了通过从 BEGIN TRAN t1 ROLLBACK TRAN t1 对中调用它来测试存储过程的想法。
我有点害怕这个。 这是一种常见的做法吗?靠谱吗?
我的目标是快速测试读取和更新 2 个数据库(同一服务器)的存储过程。 SP 不执行任何截断,而是使用一个表变量与 INSERT.. OUTPUT 语句相结合。
音量会很低(受影响的行少于 1000 行)。 谢谢

最佳答案

有些事情可能会出错:

  • proc 可以进行自己的事务管理
  • 它可以执行不可处理的语句,例如 CREATE DATABASE
  • 它可能有一个错误,导致事务自动回滚。如果 proc 然后以某种方式继续运行,它可能会在事务之外写入内容
  • > XACT_ABORT可能使用不一致,导致前面提到的效果

不过,总的来说,这是一项很好的技术。

Truncate 被处理了,顺便说一句。

关于sql - 使用事务回滚进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310592/

相关文章:

SQL Server IDENTITY(1,1) 列未与 UpdatedDate 同步生成

sql - T-SQL 在一个查询中创建表和索引

sql-server - JOIN 中的 IS NULL 条件与查询中的 WHERE 之间的区别

SQL - 字符串比较忽略空格

php - 无法安装 php 5.6 mssql - Centos 7

sql - 如何在 nvarchar 中正确插入换行符

mysql - 如何根据外键值有条件地将数据插入表中?

java - 我的数据库中有两个表。如果其他表不是该记录,我想从一个表中选择记录

java - h2|未找到 Java 列(但语句在其他地方有效)

sql - 在 DuckDB 中创建一个自增主键