Solved

T-SQL Loop through recordset and UPDATE based on every record

Posted on 2004-09-02
3
1,593 Views
Last Modified: 2010-08-05
I'm brand new to T-SQL and need some help.  I'm using 2 tables.  One is called Receivers, and looks like this:

RECEIVERS
ID, [Account ID], R00
1, 0, 123
2, 0, 456
3, 0, 789

The other is called RecAccountID and looks like this:
RECACCOUNTID
ID, R00
100,123
101,456
102,789

I need to update the Receivers table [Account ID] column with the value from ID in the RecAccountID table, where they are matched on R00.  So the Receivers table needs to look like this:
RECEIVERS
ID, [Account ID], R00
1, 100, 123
2, 101, 456
3, 102, 789

Here's what I have so far:
=====================================
declare @accountID int, @recid int, @recr00 varchar(12)

declare rec_cursor CURSOR FOR
select id, r00
from receivers
where [account id] = 999999

OPEN rec_cursor

FETCH NEXT FROM rec_cursor
INTO @recid, @recr00

WHILE @@FETCH_STATUS = 0
BEGIN
      declare account_cursor FOR
      select ID
      FROM RecAccountID
      WHERE r00 = @recr00

      OPEN account_cursor

      FETCH NEXT FROM account_cursor
      INTO @accountID

      UPDATE Receivers
      SET [Account ID] = idfromabove
      WHERE ID = @accountID

      CLOSE account_cursor
      DEALLOCATE account_cursor

      FETCH NEXT FROM rec_cursor
      INTO @recid, recr00
END

CLOSE rec_cursor
DEALLOCATE rec_cursor
GO
=====================================
It's probably totally wrong.  Anyone give me some help on this?  Thanks.

Bret
0
Comment
Question by:theswally
3 Comments
 
LVL 18

Accepted Solution

by:
SjoerdVerweij earned 125 total points
ID: 11967457
This should do it:

Update Receivers Set [Account ID] = ID From Receivers Inner Join RECACCOUNTID On RECACCOUNTID.R00 = Receivers.R00
0
 
LVL 2

Expert Comment

by:itstheride
ID: 11968677
This should work also.

update RECEIVERS
set [Account_ID] = (select RECACCOUNTID.ID
                             from RECACCOUNTID
                             where RECACCOUNTID.R00 = RECEIVERS.R00)
0
 

Author Comment

by:theswally
ID: 11968802
I tried that first, ItsTheRide, but that didn't work for me in SQL Server.

Thanks, Sjoerd!
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now