работает
Но я смогла это сделать, используя функцию и процедуру... А можно их объединить в одну процедуру? Типа подпрограммы
Функция меняет символы в соответствии с таблицей
Alphavit для конкретной строки... латинские буквы не трогает, кириллицу заменяет
CREATE FUNCTION dbo.translation_string (@temp_str_old nvarchar(20)
)
RETURNS nvarchar(20)
AS
BEGIN
DECLARE
@temp_b nvarchar(1),
@temp_str_new nvarchar(20),
@len tinyint,
@i int
set @len = datalength(@temp_str_old)
set @temp_str_new = ''
set @i = 1
while @i < @len
begin
if exists
(select
al.latin_b
from Alphavit al
where SUBSTRING(@temp_str_old, @i, 1) = al.Russian_b)
begin
set @temp_b =
(select
al.latin_b
from Alphavit al
where SUBSTRING(@temp_str_old, @i, 1) = al.Russian_b)
end
else
begin
set @temp_b = SUBSTRING(@temp_str_old, @i, 1)
end
set @temp_str_new = @temp_str_new + @temp_b
set @i = @i + 1
end
Return @temp_str_new
END
А хранимая вызывает функцию для каждого поля:
CREATE PROCEDURE dbo.Car_translation_number
as
update cars
set car_nomer =dbo.translation_string (car_nomer)
Можно меня ругать за нереляционный подход
А "пройтись курсором" я не умею - объясните, пожалуйста