select * from tMetaVis --Kullanılacak ana tablolar
select * from tMetaVisItem
--Öncelikle update sorgusu çalıştırılacak.Mevcut kurallarda değişiklilik yapmak için.
Begin tran
Update tMetaVis set AllowedMetaUnits =t2.allowedunit | AllowedMetaUnits from tMetaVis
inner join
(select tMeta.IDMeta,Sum(POWER(2,tMetaUnit.IDUnit)) allowedunit from zNms2
inner join tMeta on tmeta.GenericCode = zNms2.data
inner join tMetaUnit on tMeta.IDmeta=TmetaUnit.IDMeta and tMetaUnit.ShortName = zNms2.data1
Group by tMeta.IDMeta) t2 on tMetaVis.IDMeta =t2.IDMeta
Where tmetavis.UnitMetaVis =1
commit
--İkinci olarak insert çalıştırılır.yeni kural eklemek için.
Begin tran
insert into tMetaVis
select 0,1266+ROW_NUMBER() over(Order by t2.IDmeta),0,0,0,0,0,0,t2.IDMeta ,1,1,'2019-03-09' ,'2030-01-01',0,0,t2.Code,t2.Name,7,t2.allowedunit,1 from
(select tMeta.IDMeta,Sum(POWER(2,tMetaUnit.IDUnit)) allowedunit,tMeta.Code,tMeta.Name from zNms2
inner join tMeta on tmeta.GenericCode = zNms2.data
inner join tMetaUnit on tMeta.IDmeta=TmetaUnit.IDMeta and tMetaUnit.ShortName <> zNms2.data1
Group by tMeta.IDMeta,tMeta.Code,tMeta.Name) t2
left join tMetaVis on t2.IDMeta =tMetavis.IDMeta and tmetavis.UnitMetaVis =1
Where tMetaVis.IDMetaVis is null
commit
--Buradaki insert son olarak çalıstırılır. tMetaVisItem tablosunda yeni gelen değerleri eklemek için
Begin tran
insert into tMetaVisItem
select 0,1267+ROW_NUMBER() over(Order by tMetavis.IDmeta),1,0,1,1,0,0,0,0,0,0 from tMetaVis
left join tMetaVisItem on tMetaVisItem.IDMetaVis = tMetaVis.IDMetaVis and tMetaVisItem.IDDist=tMetaVis.IDDist
Where tMetaVisItem.IDMetaVis is null
Commit