Hoe de geldigheid van een EAN13-barcode in SQL controleren?

0000003366     -      19-11-2025

Dit SQL-script laat toe de geldigheid van een EAN13-barcode (of een andere lengte, zoals EAN8) te controleren.

declare @ean char(13)
set @ean = '9782354857974'
select case when ISNUMERIC(@ean) = 1 and dbo.XEANCHECK(left(@ean, len(rtrim(@ean)) - 1)) = @ean
            then cast(1 as bit) else cast(0 as bit) end

De scalaire functie dbo.XEANCHECK berekent de check digit van een EAN-code. Door het laatste teken van de barcode te verwijderen en de oorspronkelijke barcode vervolgens te vergelijken met de barcode zonder check digit, aangevuld met de berekende check digit, kan men de geldigheid van de barcode bepalen.

In een filter op de artikelfiche kan deze methode als volgt worden gebruikt:

(s_cle1 <> '') and ((ISNUMERIC(s_cle1) = 0)
     or (dbo.XEANCHECK(left(s_cle1, len(rtrim(s_cle1)) - 1)) <> s_cle1))

Hiermee kan men de artikelen oplijsten waarvan sleutel 1, indien niet leeg, een barcode bevat die geen geldige EAN is.

 

💡EAN13 is een vorm van GTIN, vaak gebruikt in Europa.

🔒 De broncode van de functie dbo.XEANCHECK is niet publiek. Ze is versleuteld in de SQL-database.



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)