У меня есть таблица с 2 полями: PIN-код и имя_файла
Я использую хранимую процедуру для чтения общей папки и заполнения поля fileName, например, filexxx_PIN.pdf;Затем я использую курсор для просмотра записей, извлечения PIN-кода и обновления записи;
DECLARE @PIN AS VARCHAR(100);
DECLARE @name AS VARCHAR(500);
DECLARE @start INT , @length INT;
DECLARE db_cursor CURSOR LOCAL FOR SELECT FileName FROM [dbo].[pharmaCV];
SET @length = 11
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @PIN = RTRIM(@name)
SET @PIN = RIGHT(@PIN, CHARINDEX('_', REVERSE(@PIN) + '_') - 1)
SET @PIN = SUBSTRING (@PIN , 0, @length )
UPDATE pharmaCV SET PIN = @PIN WHERE FileName LIKE '%'+@PIN +'%'
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
Это займет 25 секунд для 550 записей;
Может кто-нибудь помочь с оператором UPDATE, который делает это?