Herkese merhaba,

Bu kısımda SQL Server’da TC Kimlik Numarası doğrulayan fonksiyon kodları olacak

CREATE FUNCTION FN_TCNOKONTROL (@TcNo Bigint)
RETURNS NVARCHAR(20)
AS
BEGIN
      DECLARE @ATCNO Bigint
      DECLARE @BTCNO Bigint
      DECLARE @Deger1    Tinyint
      DECLARE @Deger2    Tinyint
      DECLARE @Deger3    Tinyint
      DECLARE @Deger4    Tinyint
      DECLARE @Deger5    Tinyint
      DECLARE @Deger6    Tinyint
      DECLARE @Deger7    Tinyint
      DECLARE @Deger8    Tinyint
      DECLARE @Deger9    Tinyint
      DECLARE @Q1    Int
      DECLARE @Q2    Int
      DECLARE @SONUC Bit 
	  DECLARE @metin NVARCHAR(50)      
      SET @ATCNO = @TcNo / 100
      SET @BTCNO = @TcNo / 100       
      IF LEN(CONVERT(VARCHAR(19),@TcNo)) = 11
      BEGIN
            SET @Deger1 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger2 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger3 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger4 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger5 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger6 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger7 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger8 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Deger9 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Q1 = ((10-((((@Deger1+@Deger3+@Deger5+@Deger7+@Deger9)*3)+(@Deger2+@Deger4+@Deger6+@Deger8)) % 10))%10)
            SET @Q2 = ((10-(((((@Deger2+@Deger4+@Deger6+@Deger8)+@Q1)*3)+(@Deger1+@Deger3+@Deger5+@Deger7+@Deger9))%10))%10)       
            IF (@BTCNO * 100)+(@Q1 * 10)+@Q2 = @TcNo SET @SONUC = 1 ELSE SET @SONUC = 0
      END
      ELSE SET @SONUC = 0    

	IF (@SONUC=1)
		BEGIN
			SET @metin='Doğru bir TC Kimlik'
		END
	ELSE
		BEGIN
			SET @metin='Yanlış bir TC Kimlik'
		END

RETURN @metin

END 


--Çalıştırılması işlemi
SELECT dbo.FN_TCNOKONTROL(35775881138)

 

Author

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever. Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever. WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever. Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever. Kısaca çok çalışmayı seven, azimli biriyim.

Yorum Yaz