I have following code on server side:
let query = `
BEGIN TRANSACTION FOO_TRAN
EXEC sp1_update ...,
EXEC sp2_insert ...,
EXEC sp3_update ...,
EXEC sp4_delete ...,
...
COMMIT TRANSACTION FOO_TRAN
SELECT 1 as [@@@];
`;
mssql.query(query, params, {
success: function (res) {
if (res && res.length === 1 && res[0]['@@@'] == 1) {
response.status(200).send({id: request.body.id});
}
}, error: (err)=>response.status(500).send(err)
});
Then client immediately requests modified content using provided id
.
Problem: old data is returned for ~2-3 seconds. I tried to specify READ UNCOMMITED
in subsequent SELECT, but it didn't help - old rows were mixed with new ones.