• A few years ago, I worked extensively with Double Metaphone code in straight SQL - it provided very good results for U.S. names and addresses http://www.sqlservercentral.com/scripts/Miscellaneous/30219/[/url].

    SOUNDEX, however, I rate as of limited value, only useful if you're at a stage where you're willing to accept many false positives.

    select Soundex('LLoyds'),DoubleMetaPhone('LLoyds') -- returns L432, LTS LTS

    select Soundex('Loyds'),DoubleMetaPhone('Loyds') -- returns L320, LTS LTS

    select Soundex('Brighton'),DoubleMetaPhone('Brighton') -- returns B623, PRTN PRTN

    select Soundex('Bristol'),DoubleMetaPhone('Bristol') -- returns B623, PRSTL PRSTL

    select Soundex('Bob'),DoubleMetaPhone('Bob') -- returns B100, PP PP

    select Soundex('Bob Harvey'),DoubleMetaPhone('Bob Harvey') -- returns B100, PPRF PPRF

    select Soundex('Shwardseneger'),generic.dbo.gefn_FUZZY_DoubleMetaPhone('Shwardseneger') -- returns S632, XRTSNJR XRTSNKR

    select Soundex('Schwarzenegger'),generic.dbo.gefn_FUZZY_DoubleMetaPhone('Schwarzenegger') -- returns S262, XRSNKR XRTSNKR

    -- Note the match on the second metaphone interpretation.

    P.S. I also started looking at Jaro Winkler for distance matching, i.e. typing errors - again, a straight SQL implementation is available http://www.sqlservercentral.com/articles/Fuzzy+Match/65702/[/url]