T-SQL Function
Returns passed 10,11 digit UPC codes with calculated checksum as 12th character.
Based on http://www.mecsw.com/specs/upc_a.html
2007-10-02 (first published: 2002-06-20)
15,451 reads
T-SQL Function
Returns passed 10,11 digit UPC codes with calculated checksum as 12th character.
Based on http://www.mecsw.com/specs/upc_a.html
Create Function fn_UPCWithChecksum (@UPC Varchar(12)) RETURNS Varchar(12) AS Begin /* Based on http://www.mecsw.com/specs/upc_a.html Returns passed 10,11 digit UPC codes with calculated checksum as 12th character. If < 11 character long passed code, adds leading zeros. If = 12 character long passed code, returns passed code unchanged. Example: select dbo.fn_UPCWithChecksum('1200000058') */ if len(@UPC) < 11 Select @UPC = Right('00000000000' + @UPC, 11) If len(@UPC) = 11 Begin Select @UPC = @UPC + Right(Convert(varchar(2), 10 - Sum(SubString(@UPC, RID, 1) * Case When RID % 2 = 1 Then 3 Else 1 End) % 10), 1) From ( Select Number as RID From Master.dbo.spt_Values Where Type = 'P' and Number Between 1 and 11 ) A End Return @UPC End