Il n'y a pas de fonction directe pour cela, mais vous pouvez le faire avec un remplacement :
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
En gros, cela vous indique combien de caractères ont été supprimés, et donc combien d'instances il y en avait.
Supplément :
Ce qui précède peut être étendu pour compter les occurrences d'une chaîne multi-caractères en divisant par la longueur de la chaîne recherchée. Par exemple :
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)