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

Database ve tablo isimlerini parametre olarak kullanma

Mesaj gönderen denizfatihi »

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: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Database ve tablo isimlerini parametre olarak kullanma

Mesaj gönderen freeman35 »

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