用过的游标
declare?@BuildingGID varchar(200)
declare?@FloorSerial? varchar(200)
declare @maxFloorNumber int
declare?tmp_cursor cursor
for select BuildingGID,FloorSerial,maxFloorNumber from T_P_CRM_InitRoomDesc--原表數據
open tmp_cursor
fetch next from tmp_cursor into @BuildingGID,@FloorSerial,@maxFloorNumber
while @@fetch_status=0
begin
?DECLARE @i INT
?SET @i = 1
?WHILE @i <=(@maxFloorNumber)
?BEGIN
???declare @resultStr varchar(100)
???declare @str varchar(1024)
???declare @index int
???declare @location int
???declare @start int
???declare @next int
???declare @seed int
???set @str = @FloorSerial --louceng
???set @index = @i
???set @str=ltrim(rtrim(@str))
???set @start=1
???set @next=1
???set @seed=1
???set @location=charindex(',',@str)
??? while @location<>0 and @index>@next
????? begin
????set @start=@location+@seed
????set @location=charindex(',',@str,@start)
????set @next=@next+1
????? end
??? if @location =0 select @location =len(@str)+1
???set @resultStr= substring(@str,@start,@location-@start)
???--最終更新
???UPDATE T_P_SBM_RoomInfo set SaleFloorNumber = @resultStr
???????????????WHERE BuildingGID =RTRIM(@BuildingGID) And RTRIM(FloorNumber)=cast(@i as varchar)
???UPDATE T_P_CRM_InitRoomInfo Set SaleFloorNumber = @resultStr
???????????????WHERE BuildingGID =RTRIM(@BuildingGID) And RTRIM(FloorNumber)=cast(@i as varchar)
???--print('BuildingGID:'+@BuildingGID+'|SaleFloorNumber:'+@resultStr+'|FloorNumer:'+cast(@i as varchar))
??SET @i=@i+1
?END
?fetch next from tmp_cursor into @BuildingGID,@FloorSerial,@maxFloorNumber
end
close tmp_cursor
deallocate tmp_cursor
轉載于:https://www.cnblogs.com/aokuny/archive/2011/06/22/2087121.html
總結