Обработка URL в SQL для исключения лишних символов

Функция заменяет все невалидные элементы на "-". Это необходимо когда наименование становится частью URL (для SEO)

ALTER function [dbo].[str_processURL] (@string nvarchar(max)) 
returns nvarchar(max) as
begin
declare @res nvarchar(max) = lower(dbo.str_cyrillic2Latin(@string))
set @res = replace(@res, '_','-')
set @res = replace(@res, ' ','-')
set @res = replace(@res, '?','-')
set @res = replace(@res, '%','-')
set @res = replace(@res, '&','-')
set @res = replace(@res, '	','-')
set @res = replace(@res, '=','-')
set @res = replace(@res, ',','-')
set @res = replace(@res, '.','-')
set @res = replace(@res, '@','-')
set @res = replace(@res, '#','-')
set @res = replace(@res, '$','-')
set @res = replace(@res, '*','-')
set @res = replace(@res, '(','-')
set @res = replace(@res, ')','-')
set @res = replace(@res, '/','-') -- возможно не везде надо будет. 
set @res = replace(@res, '+','-')
set @res = replace(@res, ':','-')

declare @ind int = 1

while @ind <= 10 begin 
	set @ind = @ind + 1
	if(right(@res,1)='-') begin 
		set @res = left(@res,len(@res)-1)
	end 
	if(left(@res,1)='-') begin 
		set @res = right(@res,len(@res)-1)
	end 

end

return @res
end
Насколько полезной была статья?

Что еще посмотреть по SQL Server

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK