Du bör kunna göra detta i ett par satser utan att använda en markör eller annan procedurkod. Se bara till att allt är i en transaktion:
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
Lägg naturligtvis till korrekt felhantering och se till att testa detta först.
Dessutom ändrade jag lite av dina tabell- och kolumnnamn. Jag vill inte gå in på vilka specifika namnkonventioner som är bättre än andra, men åtminstone var konsekvent. Om du ska använda understreck, använd dem. Om du ska använda kamelback-notation istället, använd det, men blanda inte dem. Detsamma gäller för plural kontra singular tabellnamn.