Solved

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

Posted on 2004-09-02
3
1,595 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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

Let's review the features of new SQL Server 2012 (Denali CTP3). It listed as below: PERCENT_RANK(): PERCENT_RANK() function will returns the percentage value of rank of the values among its group. PERCENT_RANK() function value always in be…
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.
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 extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.

829 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