tsql – 在脚本结尾处使用ROLLBACK测试SQL脚本是个好主意吗?

我需要编写一些SQL更新脚本来添加表,重命名列等.我把所有内容放在一个事务中:

IF EXISTS (/* check version */)
BEGIN
    -- print cannot apply update
END
ELSE
BEGIN
    BEGIN TRANSACTION

        -- apply updates

    ROLLBACK
    --COMMIT
END

现在,如果我ROLLBACK更新而不是COMMIT,我可以假设稍后当我将其更改回COMMIT它会工作吗?我还不想将它应用到我的开发数据库,​​但能够按F5并检查一切是否正常.

最佳答案 没有,

如果要进行测试,则必须确保数据库的状态.

最好编写一个小脚本,它会丢弃你的表/完整的数据库并编写一些创建数据库,表格和添加测试数据的SQL.然后你可以用你真正要使用的SQL进行真正的测试,而不是任意的(不同于真正的SQL使用)SQL并想知道你的测试代码是否有任何网站效应.

SSV(短版本):尝试尽可能干净地执行测试,没有任何其他测试代码.哪个可能干扰预期的结果.

点赞