> IF (X) THEN > ROLLBACK > RETURN (ERRCODE) > END IF > > or > > IF (X) THEN RAISERROR > > So, that is in essence the question we are currently asking: do > we want to have a more LWT-like approach (and if so, how do we > address this complexity for the user), or do we want a more > SQL-like approach (and if so, how do we modify it to make > non-interactive transactions convenient, and implementation > tractable) > > * This is anyway a shortcoming of existing batches, I think? So > it might be we can sweep it under the rug, but I think it will > be more relevant here as people execute more complex > transactions, and we should ideally have semantics that will > work well into the future – including if we later introduce > interactive transactions.
I'd start with answering the question how the syntax should handle NOT FOUND condition. In SQL, that would trigger activation of a CONTINUE handler. It's hard to see how one can truly branch the logic without it. Relying on NULL content of a cell would be full of gotchas. -- Konstantin Osipov, Moscow, Russia