我需要对客户数据库中的存储过程进行测试。有没有办法在不影响数据库数据的情况下测试存储过程?
比如SP中有一个插入查询,会改变数据库的数据。
有什么办法可以解决这个问题吗?
最佳答案
您可以在事务中运行存储过程。通过将您的语句放在注释行之间来使用此脚本。运行整个脚本,您的事务将处于未提交状态。然后,突出显示行 ROLLBACK 或 COMMIT 并相应地执行其中一个以完成。
始终有备份。
原则上,如果可能,在远离客户数据的沙箱中工作。
请注意,在您决定是提交还是回滚时,您可能会锁定数据,这些数据可能会阻止您的客户端执行其他 sql 语句。
BEGIN TRANSACTION MyTransaction
GO
-- INSERT SQL BELOW
-- INSERT SQL ABOVE
GO
IF @@ERROR != 0
BEGIN
PRINT '--------- ERROR - ROLLED BACK ---------'
ROLLBACK TRANSACTION MyTransaction
END
ELSE
BEGIN
PRINT '--------- SCRIPT EXECUTE VALID ---------'
PRINT '--------- COMPLETE WITH ROLLBACK OR COMMIT NOW! ---------'
--ROLLBACK TRANSACTION MyTransaction
--COMMIT TRANSACTION MyTransaction
END
关于sql - 在不影响数据库的情况下测试存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764221/