SQL Server 2005のストレージ・プロシージャを記録し、データの変更例を繰り返します.

892 ワード

create proc initSiteSort
as
Begin
    set nocount on;
    declare @Count int
    declare @MaxSort int
    declare @SiteId int
    set @Count = 0
    set @MaxSort = 0
    set @SiteId = 0
    select @Count = count(id) from T_Site where sort=0
    WHILE @Count > 0
        Begin
            select @MaxSort = (max(Sort)+1000) from T_Site
            select @SiteId = (id) from T_Site where sort = 0 order by id DESC
            update T_Site set Sort = @MaxSort + 1 where id = @SiteId
            set @Count = @Count -1
        End
End
GO

ストアド・プロシージャの実行
exec initSiteSort
GO
実行完了後削除
drop proc initSiteSort
GO
主な機能:すべてのSort=0のデータを、現在最大のSortに1000を加算するようにSortを変更する
主なロジック:まずSort=0のデータ個数を検索し、それから1.現在最大のSort,2を検索する.Sort=0のサイトId 3を問い合わせる.サイトSort=最大のSort+1000を修正し、カウントダウン1、ループ終了、業務完了.