Database ve tablo isimlerini parametre olarak kullanma

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
denizfatihi
Üye
Mesajlar: 236
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Database ve tablo isimlerini parametre olarak kullanma

Mesaj gönderen denizfatihi » 25 Ara 2019 11:26

Merhaba,

Database ve tablo isimlerini parametre olarak atama imkanı var mıdır ?
Yardımınız ve desteğiniz için şimdiden teşekkürler.

iyi çalışmalar,

Kod: Tümünü seç

DECLARE @Firma int=1
DECLARE @Hesapp int=1

declare @Yevmiye1 VARCHAR(250)='[DENEME_FİRMASI_2_2016].[dbo].[yevmiye] Y'
declare @Yevmiye2 VARCHAR(250)='[DENEME_FİRMASI_2_2017].[dbo].[yevmiye] Y'
declare @Yevmiye3 VARCHAR(250)='[DENEME_FİRMASI_2_2018].[dbo].[yevmiye] Y'
declare @Yevmiye4 VARCHAR(250)='[DENEME_FİRMASI_2_2019].[dbo].[yevmiye] Y'

declare @Hesapplani1 VARCHAR(250)='[DENEME_FİRMASI_2016].[dbo].[hesplan] h'
declare @Hesapplani2 VARCHAR(250)='[DENEME_FİRMASI_2017].[dbo].[hesplan] h'
declare @Hesapplani3 VARCHAR(250)='[DENEME_FİRMASI_2018].[dbo].[hesplan] h'
declare @Hesapplani4 VARCHAR(250)='[DENEME_FİRMASI_2019].[dbo].[hesplan] h'

declare @Yevmiye VARCHAR(250) = 
 CASE WHEN @Firma = 1 THEN  @Yevmiye1 
 WHEN @Firma = 2 THEN @Yevmiye2 
 WHEN @Firma = 3 THEN @Yevmiye3
 WHEN @Firma = 4 THEN @Yevmiye4 
 ELSE @Yevmiye1
 END;    

declare @Hesapplani VARCHAR(250) = 
 CASE WHEN @Hesapp = 1 THEN @Hesapplani1 
 WHEN @Hesapp = 2 THEN @Hesapplani2 
 WHEN @Hesapp = 3 THEN @Hesapplani3
 WHEN @Hesapp = 4 THEN @Hesapplani4 
 ELSE @Hesapplani1
 END; 

SELECT @Firma AS Firma, y.Refno,y.Refno2,y.Gmkod,h.Aciklama,h.Vergidairesi as VERGI_DAIRESI,
h.Vergikimlikno as VERGI_NO,
y.Fistar,y.Evraktarihi,y.Evrakno,
MONTH(y.Fistar) as Ay,year(y.Fistar) as Yil,
y.Fistur,y.Fisno,y.Aciklama,
(COALESCE(y.Doviz, 0)) as Doviz,
(COALESCE(y.Dovizadi,0)) AS Dovizadi,

CASE WHEN (COALESCE(y.Borclu,0)) > 0.00 then 
(COALESCE(y.Doviz, 0)) ELSE
0.00 END AS Doviz_Borc,

CASE WHEN (COALESCE(y.Alacakli,0)) > 0.00 then 
(COALESCE(y.Doviz, 0)) ELSE
0.00 END AS Doviz_Alacak,
CASE 
WHEN y.Dovizadi = NULL THEN 'TRY'
WHEN y.Dovizadi = 1 THEN 'TRY'
WHEN y.Dovizadi = 2 THEN 'USD'
WHEN y.Dovizadi = 3 THEN 'EURO'
ELSE 'TRY' END AS Doviz_Adi,
(COALESCE(y.Borclu,0)) as Borclu,
(COALESCE(y.Alacakli,0)) as Alacakli
,y.Islemtipi,y.Belge_Turu,
--y.Belge_Turu_Aciklamasi,
CASE 
WHEN y.Belge_Turu = 1 THEN 'Fatura'
WHEN y.Belge_Turu = 2 THEN 'Çek'
WHEN y.Belge_Turu = 3 THEN 'Makbuz'
WHEN y.Belge_Turu = 4 THEN 'Müşteri Sipariş Belgesi'
WHEN y.Belge_Turu = 5 THEN 'Satıcı Sipariş Belgesi'
WHEN y.Belge_Turu = 6 THEN 'Senet'
WHEN y.Belge_Turu = 7 THEN 'Navlun'
WHEN y.Belge_Turu = 8 THEN y.Belge_Turu_Aciklamasi
WHEN y.Belge_Turu = 9 THEN 'Belge Yok'
ELSE '' END AS Belge_Turu_Aciklamasi,

CASE WHEN y.Vade_Tarihi is null then y.Evraktarihi
else y.Vade_Tarihi end as Vade_Tarihi


,(convert(varchar,@Firma)) +'-'+(convert(varchar,y.Fisno) +'-'+convert(varchar,MONTH(y.Fistar)) +'-'+ convert(varchar,(DATEPART(yy,(DATEADD(YEAR,0,y.Fistar)))))
+'-'+convert(varchar,y.Fistur) +'-'+ convert(varchar,y.Refno)+'-'+ convert(varchar,y.Refno2)) AS REF
, GETDATE() as Mtarih, '' AS Kod, '' AS Kod2,'' AS Kod3, '' AS Kod4,'' AS Kod5  

FROM @Yevmiye 
LEFT JOIN @Hesapplani h on h.Kod=y.Gmkod  COLLATE Turkish_CS_AS


 order by y.Fistar, y.Fistur, y.Fisno, y.Refno

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2167
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Database ve tablo isimlerini parametre olarak kullanma

Mesaj gönderen freeman35 » 26 Ara 2019 10:41

sql_Text:= Format('Sonuçta %d %s', [1, 'string']) ;
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

Cevapla