Как заменить функцию 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 выполняет любые неподдерживаемые операции перед вызовом скомпилированной в собственном коде процедуры и обрабатывает повторные попытки в случае исключений оптимистичного параллелизма.