Powinieneś być w stanie to zrobić w kilku instrukcjach bez użycia kursora lub innego kodu proceduralnego. Tylko upewnij się, że to wszystko w jednej transakcji:
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
Oczywiście dodaj odpowiednią obsługę błędów i najpierw przetestuj to.
Ponadto nieznacznie zmieniłem niektóre nazwy tabel i kolumn. Nie chcę wchodzić w to, które konkretnie konwencje nazewnictwa są lepsze od innych, ale przynajmniej co najmniej być konsekwentnym. Jeśli zamierzasz używać podkreśleń, użyj ich. Jeśli zamierzasz zamiast tego użyć notacji wielbłąda, użyj jej, ale nie mieszaj ich. To samo dotyczy nazw tabel w liczbie mnogiej i pojedynczej.