Dovresti essere in grado di farlo in un paio di istruzioni senza l'uso di un cursore o altro codice procedurale. Assicurati solo che sia tutto in un'unica transazione:
BEGIN TRANSACTION
INSERT INTO crrsql.dbo.AR_Transactions (
cashier_id,
cust_num,
balance,
transaction_date)
SELECT
100199,
cust_num,
-acct_balance,
DATEADD(MINUTE, -30, current_date)
FROM crrsql.dbo.Customers
WHERE acct_balance <> 0
UPDATE crrsql.dbo.Customers SET acct_balance = 0 WHERE acct_balance <> 0
COMMIT TRANSACTION
Ovviamente, aggiungi una corretta gestione degli errori e assicurati di testarlo prima.
Inoltre, ho leggermente modificato alcuni nomi di tabelle e colonne. Non voglio entrare in quali convenzioni di denominazione specifiche siano migliori di altre, ma almeno almeno essere coerente. Se hai intenzione di usare i trattini bassi, usali. Se invece hai intenzione di usare la notazione a dorso di cammello, usa quella, ma non mescolarli. Lo stesso vale per i nomi delle tabelle plurali e singolari.