SQL Server’da TC Kimlik Numarası Doğrulayan Fonksiyon

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)

 

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir