ホームページ  >  記事  >  データベース  >  按照一定规则批量修改表中新增字段的值

按照一定规则批量修改表中新增字段的值

WBOY
WBOYオリジナル
2016-06-07 14:55:061618ブラウズ

运行于SQLServer 2008 SQL Server create procedure proc_deptasdeclare @cursor cursor,@id varchar(50),@pid varchar(100)beginset @cursor = cursorforselect deparet_id, parent_deparet_id from dbo.tb_department_tree order by sequence;open @cursorf

运行于SQLServer 2008 SQL Server
create procedure proc_dept
as
declare @cursor cursor,
@id varchar(50),
@pid varchar(100)
begin
	set @cursor = cursor
	for
	select deparet_id, parent_deparet_id from dbo.tb_department_tree order by sequence;
	open @cursor
	fetch next from @cursor into @id, @pid;
	while(@@FETCH_STATUS = 0)
	begin
		if(@pid is null) 
		begin
			update tb_department_tree set scope = @id, tlevel = 1, tpath = @id where deparet_id = @id;
		end
		else
		begin 
			update tb_department_tree set tlevel = (select tlevel from tb_department_tree where deparet_id = @pid)+1, tpath = (select tpath from tb_department_tree where deparet_id = @pid)+'-'+@id where deparet_id = @id;
			update tb_department_tree set scope =(select SUBSTRING(tpath, 0, CHARINDEX('-',tpath, 0)) from tb_department_tree where deparet_id = @id) from tb_department_tree where deparet_id = @id;
		end;
		fetch next from @cursor into @id, @pid;
	end;
	close @cursor;
end;

exec proc_dept;

drop procedure proc_dept;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。