private static int UpdateChild(QuestionType channel, QuestionType oldChannel) { //int depthSpan = channel.Depth - oldChannel.Depth; QuestionType value = new QuestionType(); QuestionType condition = new QuestionType(); condition.Path = "%~" + channel.ID + "~%"; condition.AddAttach("Path", "like"); value.RootID = channel.RootID; value.Depth = channel.Depth - oldChannel.Depth; value.AddParameter("OldPath", oldChannel.Path + "" + channel.ID + "~"); value.AddParameter("OldNamePath", oldChannel.NamePath + "" + oldChannel.Name + "~"); value.Path = channel.Path + "" + channel.ID + "~"; value.NamePath = channel.NamePath + "" + channel.Name + "~"; value.SetUpdate(" RootID=@RootID, Depth = Depth + @Depth, [Path]=REPLACE([Path], @OldPath, @Path) , [NamePath]=REPLACE([NamePath], @OldNamePath, @NamePath)"); return(TableOperate <QuestionType> .Update(value, condition)); }