На сервере SQL нет экспорта из коробки.
Предположим,
- Ваш стол может быть довольно большим, поскольку он выглядит как вы и изображение стола каждую минуту.
- Если вы хотите сделать все это изнутри SQL Сервер.
Тогда я предлагаю сделать уборку кусками. Обычный процесс в SQL для удаления кусками - это использование DELETE в сочетании с оператором OUTPUT. Тогда самым простым способом архивации и удаления было бы использование ВЫХОДА в таблицу в другой базе данных для этой единственной цели.
, поэтому ваши шаги будут:
- Создать новую базу данных ( ArchiveDatabase )
- Создать таблицу архива в ArchiveDatabase (ArchiveTable) с той же структурой таблицы, которую вы хотите удалить.
- Через некоторое время l oop выполнить УДАЛЕНИЕ / ВЫХОД
- Резервное копирование ArchiveDatabase
- TRUNCATE ArchiveTable таблицы в ArchiveDatabase
Циклы DELETE / OUTPUT будут выглядеть примерно так:
declare @RowsToDelete int = 1000
declare @DeletedRowsCNT int = 1000
while @DeletedRowsCNT = @RowsToDelete
begin
delete top (@RowsToDelete)
from MyDataTable
output deleted.* into ArchiveDatabase.dbo.ArchiveTable
where dt < dateadd(month, 3, getdate())
set @DeletedRowsCNT = @@ROWCOUNT
end