Non esiste una funzione diretta per questo, ma puoi farlo con una sostituzione:
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
Fondamentalmente questo ti dice quanti caratteri sono stati rimossi e quindi quante istanze c'erano.
Extra:
Quanto sopra può essere esteso per contare le occorrenze di una stringa multi-char dividendo per la lunghezza della stringa cercata. Ad esempio:
declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'
select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount)