{
    "id": "sqlsrv151-cancel-transaction",
    "title": "Отличить отмену команды от отмены резерва",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "До резерва",
            10
        ],
        [
            "UPDATE изменил строк",
            1
        ],
        [
            "cancel команды успешен",
            true
        ],
        [
            "Свое соединение после cancel видит",
            8
        ],
        [
            "Транзакций после cancel",
            1
        ],
        [
            "Явный rollback успешен",
            true
        ],
        [
            "После rollback доступно",
            10
        ],
        [
            "Транзакций после rollback",
            0
        ]
    ],
    "checks": {
        "one_row_updated": true,
        "cancel_succeeded": true,
        "cancel_not_undo": true,
        "transaction_still_active": true,
        "rollback_succeeded": true,
        "stock_restored": true,
        "transaction_closed": true,
        "owned_objects_removed": true
    },
    "observations": {
        "available_before": 10,
        "available_after_completed_update_and_cancel": 8,
        "transaction_count_after_cancel": 1,
        "available_after_rollback": 10
    },
    "runtime": {
        "php": "8.3.35",
        "extension": "5.13.3+20807",
        "odbc_driver": "18.07.0001",
        "odbc_api": "03.80",
        "server_version": "16.00.1000",
        "database": "phpmanual149",
        "transport": "local_named_pipe"
    },
    "owned_objects": [
        {
            "type": "TABLE",
            "name": "sqlsrv151_cancel_transaction_93222c6d0627"
        }
    ],
    "removed_objects": [
        {
            "type": "TABLE",
            "name": "sqlsrv151_cancel_transaction_93222c6d0627"
        }
    ]
}
