• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

SQL KTF SQL ile T.C. Kimlik Numarası Doğrulama Algoritması

Murat OSMA

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,506
En iyi yanıt
13
Puanları
113
Konum
İstanbul
Web sitesi
excelarsivi.com
Ad Soyad
Murat OSMA
Office Vers.
Office 365 TR+EN
SQL:
CREATE FUNCTION [dbo].[KIMLIKNO_KONTROL](@TcNo Bigint)
RETURNS BIT
AS
BEGIN
      DECLARE @ATCNO Bigint
      DECLARE @BTCNO Bigint
      DECLARE @C1    Tinyint
      DECLARE @C2    Tinyint
      DECLARE @C3    Tinyint
      DECLARE @C4    Tinyint
      DECLARE @C5    Tinyint
      DECLARE @C6    Tinyint
      DECLARE @C7    Tinyint
      DECLARE @C8    Tinyint
      DECLARE @C9    Tinyint
      DECLARE @Q1    Int
      DECLARE @Q2    Int
      DECLARE @SONUC Bit      
      SET @ATCNO = @TcNo / 100
      SET @BTCNO = @TcNo / 100      
      IF LEN(CONVERT(VARCHAR(19),@TcNo)) = 11
      BEGIN
            SET @C1 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C2 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C3 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C4 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C5 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C6 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C7 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C8 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @C9 = @ATCNO % 10 SET @ATCNO = @ATCNO / 10
            SET @Q1 = ((10-((((@C1+@C3+@C5+@C7+@C9)*3)+(@C2+@C4+@C6+@C8)) % 10))%10)
            SET @Q2 = ((10-(((((@C2+@C4+@C6+@C8)+@Q1)*3)+(@C1+@C3+@C5+@C7+@C9))%10))%10)      
            IF (@BTCNO * 100)+(@Q1 * 10)+@Q2 = @TcNo SET @SONUC = 1 ELSE SET @SONUC = 0
      END
      ELSE SET @SONUC = 0  
RETURN @SONUC
END

FONKSİYONUN KULLANILIŞI :
Manuel olarak verilen Kimlik No kontrolü

SELECT dbo.[KIMLIKNO_KONTROL](12345678911) AS KONTROL

Kontrol olarak adlandırdığımız alan, Doğru ise 1, Yanlış ise 0 değeri döner.

Bir tabloda olan tüm kimlik numaralarının kontrolü için
SELECT dbo.[KIMLIKNO_KONTROL](TCNO_ALAN) AS KONTROL FROM TABLO_ADI
 
Üst Alt