Nicholson, Karen
knicholson at gpsx.net
Tue Sep 30 13:09:02 CDT 2003
CREATE PROCEDURE gps_american_site_no AS create table #tmp_site (site_no int) insert #tmp_site(site_no) select max(site_no) from site Does anyone know anything about cursors? I have a table that I have imported from Access to SQL 7. Table is named tblAmerican. The unique ID is named ID, the field I want to populated is named siteno. I get the maximum value of the site_no from my site table (another SQL table). That works. Then I think I am telling Herman (that is my computer) to update the values of the site_no field in tblAmerican by one as it loopdy doops through my first attempt at a cursor. The only thing I get is the first number in tblAmerican. Says it is doing something one by one, but only row one gets updated. Why am I lost? declare @tmp_site_no int, @tmp_id_no int declare auto_site_cursor cursor for select id from tblamerican open auto_site_cursor fetch next from auto_site_cursor into @tmp_id_no while @@fetch_status = 0 begin update tblamerican set siteno = #tmp_site.site_no + 1 from #tmp_site, tblamerican where tblamerican.id=@tmp_id_no update #tmp_site set site_no = site_no + 1 fetch next from auto_site_cursor into @tmp_site_no end close auto_site_cursor deallocate auto_site_cursor drop table #tmp_site