I have to insert into multiple tables if the condition is true in one table i.e.

Table

```
Person

tableID      PersonUniqueNumber
1               123
2               1234
3               121
4               12
5               113333

```

and another table

```
RentedHousesDetail

HouseId(tableId)      HouseName         HouseLocation    ISOK
   1                     A                  CA            NO
   2                     B                  DT            NULL
   3                     C                  NY            NULL
   4                     D                  CA        
   5                     E                  CA

```

and other tables

Table
 CALIFORNIAHOUSE 

Table
 STATUSGREEN 

So, what I have to do is to for EACH person, I have to see if his houselocation in RentedHousesDetail is CA then I have to do single row insertion of RentedHousesDetail.ID in table CALIFORNIAHOUSE and STATUSGREEN and update RentedHousesDetail.ISOK column to NO.

There are thousands of rows in the table, so I wrote a cursor e.g.

```
DECLARE variables

DECLARE cursorName CURSOR -- Declare cursor

LOCAL SCROLL STATIC

FOR

select PERSON.ID of those rows only where we have CA in RentedhouseDetails

OPEN cursorName -- open the cursor

FETCH NEXT FROM cursorName
INTO variables

WHILE @@FETCH_STATUS = 0

BEGIN

   FETCH NEXT FROM cursorName

   FOR EACH ROW that we have from cursor, insert into CALIFORNIAHOUSE and STATUSGREEN and update RentedHousesDetail.ISOK to NO

END

CLOSE cursorName -- close the cursor

DEALLOCATE cursor

```

Please tell me is it ok to use cursor on thousands of rows in Person and Rentedhousedetails table? How can I convert it into set based operation for speed?