逐条更新数据 sql

       前些天更新数据时,update语句之后没加Where语句,结果更新后数据结果都是一样了,麻烦了,幸好有备份的数据,但想了想,不用数据库的还原功能应该也可以吧,用SQL语句应该可以还原的。     于是,就写了个SQL语句,供不小心,忘记更新数据少加Where语句的朋友看看 。
declare @tid int        
declare @fid int
declare @i int
declare @j int
set @j=(select count(*from tbl1.dbo.dnt_topics)
set @i=1         
while   @i<@j         
begin             
    
set @tid = (select tid from ( select ROW_NUMBER() over (order by tid asc ) as Row, tid,fid from dnt_topics ) as sp  where Row=@i)
    
set @fid=(select fid from ( select ROW_NUMBER() over (order by tid asc ) as Row, tid,,fid from dnt_topics ) as sp  where Row=@i)                 
    
update             
        tbl2.dbo.dnt_topics          
    
set                  
        fid
=@fid         
    
where              
        tid
=@tid                     
        
set @i=@i+1         
end  
posted @ 2008-07-08 17:31  ruolinzhanyuan  阅读(772)  评论(1编辑  收藏  举报