#T-SQL, 106 bytes
T-SQL, 106 bytes
Accepting uppercase characters.
Inserted a line break to make this readable:
DECLARE @ varchar(max)='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
WHILE'='<@
SET
@=stuff(@,1,1,'')+'-~'+substring('02210313074020029000033739',ascii(@)-64,1)
EXEC('print'+@)