CREATE OR ALTER   PROCEDURE [dbo].[sp_StokKart_Aktar]    
(    
    @Hedef  SYSNAME,    
 @Kaynak   SYSNAME,    
 @StokNo     nvarchar(max)    
)    
    
AS     
BEGIN    
 SET NOCOUNT ON;    
    
 -- Gerçekten bu veritabanları sistemde var mıdır, buna bakıyoruz. sqlinjection da engellenmiş oluyor.    
 SELECT @Hedef = name    
 FROM sys.databases    
 WHERE name = @Hedef;    
    
 SELECT @Kaynak = name    
 FROM sys.databases    
 WHERE name = @Kaynak;    
    
 DECLARE @Query nvarchar(MAX);    
    
 SET @Query = 'DELETE FROM '+@Hedef+'.dbo.STOKKARTI WHERE StokNo in (Select StokNo from '+@Kaynak+'.dbo.STOKKARTI where StokNo in ('+@StokNo+'))';    
    EXEC sp_executesql @Query;    
    
 SET @Query = 'INSERT INTO ' + @Hedef + '.dbo.[STOKKARTI]     
     ( StokNo, Kodu, UreticiFirmaKodu, StokAdi, OzelKod1, OzelKod2, AnaBirim, Barkodu,AlisKdv, SatisKdv, Indirim, StokAdedi,F1Adi, F2Adi, F3Adi, F4Adi, F1Fiyat, F2Fiyat, F3Fiyat, F4Fiyat, F1Kdv, F2Kdv, F3Kdv, F4Kdv,     
     GrupAdi, UrtNo, UrtMiktar,AsgariAdet, AzamiAdet, OTVOrani, StokEn, StokBoy, StokYuksekligi, StokKilo, StokRenkKodu, KULNO, KULADI, TP, UygFiyat,     
     Aciklama, Departman, AlisIndirimYuzde, SatisIndirimYuzde, OTVTutari, DepartmanKodu, F1DovizKodu, F2DovizKodu, F3DovizKodu, F4DovizKodu, Update_Date, TeraziTusu, YKasaTusu, Secim, AnaStokKodu, Ambalaj,     
     StokKiloBrut, StokTipi, StokOzellikKodu, AktifPasif, OzelBarkod, Olcu, AlisIndirimYuzde2, AlisIndirimYuzde3, AlisIndirimYuzde4, SatisIndirimYuzde2, SatisIndirimYuzde3, SatisIndirimYuzde4, MuadilStokNo, BonusPuani,     
     BonusPuaniSatici, OlmasiGerekenAdet, PrimYuzde, StokBedenNo, StokRenkBedenCalisir, WASG, WebGrupAdi, SKFIK, GrupOzelKod1, GrupOzelKod2, GrupOzelKod3, GrupOzelKod4, OrjinalKodu, StokAdi2, Aciklama2,     
     WebGrupAdi2, StokAgirlik, StokMaxAgirlik, StokMinAgirlik, AltGrupAdi, AltGrupAdi2, SeriNoTakibi, IRKI, SuniTohum, OzelKod3, OzelKod4, Icmal, SatisFiyatiDegistirilemez, A_Muh_Kodu, S_Muh_Kodu, FireOrani,     
     WebdeGosterilsinmi, TarimElTerminliGosterilsinmi, AltGrupAdi3, AdetTakibi, LotTakibi, UlkeKodu, TevkifatKodu)     
    SELECT StokNo, Kodu, UreticiFirmaKodu, StokAdi, OzelKod1, OzelKod2, AnaBirim, Barkodu,AlisKdv, SatisKdv, Indirim, StokAdedi,F1Adi, F2Adi, F3Adi, F4Adi, F1Fiyat, F2Fiyat, F3Fiyat, F4Fiyat, F1Kdv, F2Kdv, F3Kdv, F4Kdv,     
      GrupAdi, UrtNo, UrtMiktar,AsgariAdet, AzamiAdet, OTVOrani, StokEn, StokBoy, StokYuksekligi, StokKilo, StokRenkKodu, KULNO, KULADI, TP, UygFiyat,     
      Aciklama, Departman, AlisIndirimYuzde, SatisIndirimYuzde, OTVTutari, DepartmanKodu, F1DovizKodu, F2DovizKodu, F3DovizKodu, F4DovizKodu, Update_Date, TeraziTusu, YKasaTusu, Secim, AnaStokKodu, Ambalaj,     
      StokKiloBrut, StokTipi, StokOzellikKodu, AktifPasif, OzelBarkod, Olcu, AlisIndirimYuzde2, AlisIndirimYuzde3, AlisIndirimYuzde4, SatisIndirimYuzde2, SatisIndirimYuzde3, SatisIndirimYuzde4, MuadilStokNo, BonusPuani,     
      BonusPuaniSatici, OlmasiGerekenAdet, PrimYuzde, StokBedenNo, StokRenkBedenCalisir, WASG, WebGrupAdi, SKFIK, GrupOzelKod1, GrupOzelKod2, GrupOzelKod3, GrupOzelKod4, OrjinalKodu, StokAdi2, Aciklama2,     
      WebGrupAdi2, StokAgirlik, StokMaxAgirlik, StokMinAgirlik, AltGrupAdi, AltGrupAdi2, SeriNoTakibi, IRKI, SuniTohum, OzelKod3, OzelKod4, Icmal, SatisFiyatiDegistirilemez, A_Muh_Kodu, S_Muh_Kodu, FireOrani,     
      WebdeGosterilsinmi, TarimElTerminliGosterilsinmi, AltGrupAdi3, AdetTakibi, LotTakibi, UlkeKodu, TevkifatKodu    
    FROM ' + @Kaynak + '.dbo.[STOKKARTI] S WHERE S.StokNo in ('+@StokNo+')';    
          
    EXEC sp_executesql @Query;    
  
 SET @Query =  'UPDATE sk 
				   SET sk.StokAdedi = (SELECT ISNULL(SUM(Miktar), 0) from ' + @Hedef + '.dbo.STOKHAR sh   
									    WHERE sh.StokKodu = sk.Kodu and sh.GC=''G'' and sh.FisTuru<>''İ'')-  
									  (SELECT ISNULL(SUM(Miktar), 0) from ' + @Hedef + '.dbo.STOKHAR sh   
									    WHERE sh.StokKodu = sk.Kodu and sh.GC=''C'' and sh.FisTuru<>''İ'')   
				  FROM ' + @Hedef + '.dbo.STOKKARTI sk   
				 WHERE sk.StokTipi in (''+ Ürün'',''+ Ambalaj'',''+ Demirbaş'') ';  	 
 EXEC sp_executesql @Query;         
END; 