====== pears.MergeQuestionnaire ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."MergeQuestionnaire"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
in "slikelocation" char(3),in "ssourceid" char(20),in "stargetid" char(20) )
begin
update "tagvalue" as "tv" key join "tag"
set "tv"."id" = "stargetid"
where "tag"."tagtype" in( 'L','S','G' )
and "tv"."taglocation" like "slikelocation" and "tv"."id" = "ssourceid"
and not exists(select "id" from "tagvalue"
where "taglocation" = "tv"."taglocation" and "tagid" = "tv"."tagid" and "tagchoiceid" = "tv"."tagchoiceid"
and "id" = "stargetid");
update "tagvalue" as "tv" key join "tag"
set "tv"."id" = "stargetid"
where "tag"."tagtype" not in( 'L','S','G' )
and "tv"."taglocation" like "slikelocation" and "tv"."id" = "ssourceid"
and not exists(select "id" from "tagvalue"
where "taglocation" = "tv"."taglocation" and "tagid" = "tv"."tagid"
and "id" = "stargetid");
delete from "tagvalue" where "taglocation" like "slikelocation" and "id" = "ssourceid"
end
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."MergeQuestionnaire" IS
{create procedure MergeQuestionnaire
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(in slikelocation char(3),in ssourceid char(20),in stargetid char(20))
begin
update tagvalue as tv key join tag set
tv.id=stargetid
where tag.tagtype in('L','S','G')
and tv.taglocation like slikelocation and tv.id=ssourceid
and not exists(select id from tagvalue
where taglocation=tv.taglocation and tagid=tv.tagid and tagchoiceid=tv.tagchoiceid
and id=stargetid);
update tagvalue as tv key join tag set
tv.id=stargetid
where tag.tagtype not in('L','S','G')
and tv.taglocation like slikelocation and tv.id=ssourceid
and not exists(select id from tagvalue
where taglocation=tv.taglocation and tagid=tv.tagid
and id=stargetid);
delete from tagvalue where taglocation like slikelocation and id=ssourceid
end
}