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、ループ終了、業務完了.