有没有一种方法来模拟SQL服务器的错误响应/状态,而不写一些东西带来的DB


Is there a way to simiulate SQL server error responses/states without writing something that brings down the DB?

前几天在我们的生产数据库上,我们发现了一些错误的查询,这些查询导致了生产系统中的一些阻塞。虽然这些查询已经修复,但还有另一个问题,不知何故,我们的应用程序开始显示消息"发生了type 1000服务器错误"。我试图更新我们的应用程序,以适当地处理这个,不幸的是,我似乎无法轻松地再生状态SQL服务器是在导致这个错误。是否有一种方法来"短路"一个请求到SQL,所以DB会给出一个响应,但表明它是在一个"锁定"或"无法执行"的状态?

在SQL中,您可以使用TRY…Catch返回您想要的任何响应。

模拟对象是测试这类行为的"最佳方式"。如果你没有一个测试框架(例如PHPUnit)来促进这一点,那么选择就更少了。

    你可以破解响应对象,就像@Marc B建议的,这是就像使用模拟对象一样,但是以一种不那么正式的方式。
  • 你也可以设置一个指向实例的开发环境的SqlServer,你可以滥用。