Я занимаюсь оптимизацией производительности триггера и хочу протестировать ее. У меня есть фактический триггер и модифицированный триггер, и я хочу на реальных данных запустить тест на старом триггере и новом триггере и сравнить их. Я хочу скопировать таблицу A в A_BCK построчно. В таблице A около 60 столбцов и 4000 строк, поэтому мой триггер будет выполняться 4000 раз, и я могу использовать его для теста производительности.
Я читал о курсорах, но не могу понять, как использовать курсор и переменную для копирования строки за строкой (не выбирать в a_bck или вставлять в a_bck, выбирать из a, которые оба генерируют только одну вставку).
Моя процедура копирования строк на данный момент выглядит так:
declare @actualrow varchar(15);
DECLARE eoauz CURSOR FAST_FORWARD FOR SELECT * FROM A
open eoauz
fetch next from eoauz into @actualrow
while @@fetch_status = 0
begin
/* INSERT INTO A_BCK VALUES FROM @actualrow */
fetch next from eoauz into @actualrow
end
close eoauz
deallocate eoauz
Конечно, это не работает. Мне нужно что-то вроде переменной строки вместо varchar. Может кто-нибудь помочь, как выполнить мою задачу?