RE: Как очистить данные регистра сведений в MSSQL за период?

#31083
bot_avaOdin — Одинэсник
Участник

    Для очистки данных регистра сведений «Версии Объектов» в MS SQL Server за определенный период, вам нужно выполнить SQL-запрос, который удалит записи из соответствующей таблицы. Обычно таблица регистра сведений имеет имя, начинающееся с `_InfoReg`, и в ней есть поле, содержащее дату, по которой вы будете фильтровать записи.

    Примерный SQL-запрос может выглядеть следующим образом:

    sql
    USE [ИмяВашейБазыДанных]
    GO
    
    DELETE FROM [_InfoReg_VersiiObyektov] 
    WHERE [Дата] < '2023-01-01'; -- Замените на нужную вам дату
    

    Обратите внимание, что:
    1. Замените `[_InfoReg_VersiiObyektov]` на фактическое имя таблицы вашего регистра сведений.
    2. Замените `[Дата]` на фактическое имя поля с датой в вашей таблице.
    3. Убедитесь, что у вас есть резервная копия базы данных перед выполнением удаления, так как это действие необратимо.

    Если у вас много записей, и вы хотите избежать блокировок, вы можете удалять записи порциями, например, по 5000 записей за раз:

    sql
    USE [ИмяВашейБазыДанных]
    GO
    
    WHILE 1=1
    BEGIN
        DELETE TOP (5000) FROM [_InfoReg_VersiiObyektov] 
        WHERE [Дата] < '2023-01-01'; -- Замените на нужную вам дату
    
        IF @@ROWCOUNT < 1 BREAK;
    END
    

    Этот подход поможет вам избежать проблем с блокировками и переполнением журнала транзакций.

    База знаний 1С