Это должно помочь:
DECLARE @str1 VARCHAR(10)
SET @str1 = 'sql'
DECLARE @str2 VARCHAR(100)
SET @str2 = 'welcome to sql server. Sql server is a product of Microsoft sql'
SELECT (DATALENGTH(@str2) - DATALENGTH(REPLACE(@str2, @str1, ''))) / DATALENGTH(@str1)
Это просто удаляет все экземпляры @ str1 из @ str2 (используя REPLACE), сравнивая разницу в длине с исходным значением @ str2.Это дает общее количество символов, которые были удалены, поэтому вы делите на длину @ str1, чтобы узнать, сколько экземпляров было удалено.