Как заменить функцию REPLACE() в модуле, скомпилированном в собственном коде?

Я конвертирую свою старую хранимую процедуру (SQL Server 2016) в процедуру, скомпилированную в собственном коде, и в одном месте получаю:

      SELECT @name = REPLACE(@inname, ':' + @new + ':', ':' + @old + ':')

Msg 10794, уровень 16, состояние 93, процедура usp_2, строка 101 [Batch Start Line 108]
Функция replace не поддерживается для модулей, скомпилированных в собственном коде.

Как заменить функцию REPLACE()?

1 ответ

Решение

Типичным шаблоном является использование обычной оболочки процедуры TSQL и подпроцедуры, скомпилированной в собственном коде. Оболочка TSQL выполняет любые неподдерживаемые операции перед вызовом скомпилированной в собственном коде процедуры и обрабатывает повторные попытки в случае исключений оптимистичного параллелизма.

Другие вопросы по тегам