Start here. This is the direct spoken answer to practice first.
Why this question matters
Azure SQL connections can fail briefly during throttling, failover, or network disruption. Bounded retries can absorb those events, but unsafe write repetition and retry storms can damage correctness and database health.
I would handle Azure SQL transient faults with limited retries, backoff, and jitter, not infinite retry loops. The code needs clear command timeouts and a distinction between transient connection or throttling errors and permanent failures like bad SQL or constraint violations. For writes, I would only retry safely when the operation is idempotent or when the code can detect whether the first attempt already succeeded.