Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQl Server içinde değere göre kontrol yapmak
#1
herkese merhabalar
yapmak istediğim kod aşağıdaki kod ve bu çalışıyor ama burdaki tablo ismi ve kod dışardan girileceği için
2.sırada bulunan kod a çevirdim ama çalışmadı bir yerde eksiklik var yardımcı olabilecek kimse var mı acaba ?

çalışan kod
DECLARE @recordNo NVarchar(10)
SELECT @recordno = Count(*) FROM TransferMS Where kod = 3
IF @recordno =1 
PRINT 'KAYIT VAR'
ELSE
PRINT 'KAYIT YOK'
-------------------------------------------------------

2.Kod
DECLARE @SQL_ nVArchar(200)
DECLARE @tabloadi1 nVarchar(100)='TransferMS'
DECLARE @recordNo nVarchar(5)

SET @SQL_ = ' SELECT @recordNo = Count(*) FROM ' + @tabloadi1 + ' Where kod = ' + CAST( 1 as varchar (5)) 
EXECUTE SP_EXECUTESQL @SQL_
SELECT @recordNo

IF @recordNo=0
PRINT 'YOK'
ELSE
PRINT 'VAR'

----------------------------------------------------------------
Aslında yapmak istediğim

IF EXISTS(SELECT * FROM TRANSFERMS Where kod=1) 
PRINT VAR
ELSE 
PRINT YOK

kod bu şekilde çalışıyor sorun yok ama burda sorun tablo adı ve kod kısmı dışardan girileceği için kodu çalıştırmak için  EXECUTE SP_EXECUTESQL @SQL_ gerekiyor bu durumda da sorun çıkıyor.
Cevapla
#2
Belki farklı bir fikir aklına getirir diye bişeyler yapmay çalıştım umarım faydalı olur

DECLARE @SQL_ nVArchar(200)
DECLARE @tabloadi1 nVarchar(100)='Catalog'
SET @SQL_ ='IF EXISTS(SELECT * FROM '+@tabloadi1+' Where Id=1) 
Select ''VAR''
ELSE
Select ''YOK''
'
EXECUTE SP_EXECUTESQL @SQL_
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
@Bay_Y 

BEGIN
DECLARE @SQL_ nVArchar(200)
DECLARE @tabloadi1 nVarchar(100)
DECLARE @FISNO VARCHAR(20)
DECLARE @recordNo int

SET @tabloadi1='TBLFATUIRS'
SET @FISNO='0000000000M04216'
SET @recordNo=0

SET @SQL_ = 'SELECT @recordNo = COUNT(*) FROM ' + @tabloadi1 + ' Where FATIRS_NO = @FISNO'
EXECUTE sp_executesql @SQL_ , N'@FISNO nvarchar(75),@recordNo int OUTPUT', @FISNO = @FISNO,@recordNo=@recordNo OUTPUT

SELECT @recordNo

IF @recordNo>0
PRINT 'var'
ELSE
PRINT 'yok'
END
Cevapla
#4
Teşekkür ederim buna benzer bişi denedim ama başarılı olamadım tekrar dener bilgi yazarım.

yardımın için çok teşekkür ediyorum.
Cevapla
#5
Geri Değer döndürüyor sorun yok tekrar çok teşekkürler.
Cevapla
#6
@Bay_Y Rica ederim. Rep Puan +
Cevapla
#7
(17-05-2018, Saat: 17:38)adelphiforumz Adlı Kullanıcıdan Alıntı: Belki farklı bir fikir aklına getirir diye bişeyler yapmay çalıştım umarım faydalı olur

DECLARE @SQL_ nVArchar(200)
DECLARE @tabloadi1 nVarchar(100)='Catalog'
SET @SQL_ ='IF EXISTS(SELECT * FROM '+@tabloadi1+' Where Id=1) 
Select ''VAR''
ELSE
Select ''YOK''
'
EXECUTE SP_EXECUTESQL @SQL_

Teşekkürler  , kusura bakma daha önce farkedemedim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uzak Sunucuya (Server) Lokalden Veri Tabanı Oluşturma Hk. glagher 6 200 10 saat önce
Son Yorum: rmzgenius
  String içinde karakter arama barissagir 3 342 07-02-2024, Saat: 17:57
Son Yorum: RAD Coder
  MS SQL Server - Arama Yaklaşık Değerleri Bulma hi_selamlar 5 530 17-01-2024, Saat: 22:53
Son Yorum: Mr.X
  Sql Server Otomatik Kurulum narkotik 11 7.861 21-12-2023, Saat: 14:25
Son Yorum: Bay_Y
  MS SQL server tarih formatı değiştirme MEK 15 5.643 13-09-2022, Saat: 23:19
Son Yorum: MEK



Konuyu Okuyanlar: 1 Ziyaretçi