With `SourceTable` having > 15MM records and `Bad_Phrase` having > 3K records, the following query takes almost 10 hours to run on SQL Server 2005 SP4.

```
Update [SourceTable] 
Set Bad_Count = (Select count(*) 
                 from Bad_Phrase 
                 where [SourceTable].Name like '%'+Bad_Phrase.PHRASE+'%')

```

In English, this query is counting the number of times that any phrases listed in `Bad_Phrase` are a substring of the column `[Name]` in the `SourceTable` and then placing that result in the column `Bad_Count`.

I would like some suggestions on how to have this query run considerably faster.