Я ищу решение, как я могу перемещать строки из большой таблицы кусками по 1000 в разные таблицы на основе частей значения даты и времени (в виде ежемесячного архива). Я использую MS SQL Server 2008.
Ремус Русану предоставил здесь следующее решение в stackoverflow Переместить данные SQL Server в ограниченные (1000 строк) фрагменты для перемещения строк в фрагментах. Работает как шарм :-)
WHILE 1=1
BEGIN
WITH messages AS (
SELECT TOP 1000 id, messageDatetime, message
FROM DemoData)
DELETE messages
OUTPUT DELETED.id, messageDatetime, message
INTO messageArchive;
IF (@@ROWCOUNT = 0)
BREAK;
END
Теперь мне нужна возможность перемещать строки в разные таблицы в зависимости от месяца в messageDate.
- сообщения за сентябрь должны быть вставлены в таблицу с именем messageArchive_09
- сообщения от октября должны быть вставлены в таблицу с именем messageArchive_10
- ...
Любые идеи?