SQL游标及sp_executesql用法

DECLARE @MyCur CURSOR
 SET @MyCur = Cursor Local Scroll FOR SELECT TopicID,PostTable FROM TB_BBS_Topic WHERE BoardID = @SrcBoardID AND DATEDIFF(DAY,DateAndTime,GETDATE())> @Days
     OPEN @MyCur
     FETCH NEXT FROM @MyCur INTO @TopicID,@PostTable
     WHILE @@FETCH_STATUS = 0
     BEGIN
  SET @Sql = 'UPDATE '+ @PostTable + ' SET BoardID = '+ convert(varchar,@DestBoardID) + ' WHERE RootID = '+ convert(varchar,@TopicID)  
  EXEC @Sql
         FETCH NEXT FROM @MyCur INTO @TopicID,@PostTable
     END
 CLOSE  @MyCur
 Deallocate @MyCur  

 

 

set @str_sql='SELECT @TotalRec=COUNT(AnnounceID) FROM '+ @PostTable +' WHERE ParentID <> 0 AND RootID ='+LTRIM(STR(@RootID))+' AND BoardID = '+LTRIM(STR(@BoardID))
exec sp_executesql @str_sql,N'@TotalRec int output',@TotalRec output

posted on 2010-08-24 22:28  fery  阅读(468)  评论(0编辑  收藏  举报