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]