A primeira maneira que vem à mente é fazê-lo indiretamente, substituindo a vírgula por uma string vazia e comparando os comprimentos
Declare @string varchar(1000)
Set @string = 'a,b,c,d'
select len(@string) - len(replace(@string, ',', ''))
Declare @string varchar(1000)
Set @string = 'a,b,c,d'
select len(@string) - len(replace(@string, ',', ''))