Объем УДАЛЯЕТ на SQL Server 2008 (Там, чему-нибудь нравится Массовое копирование (BCP) за, удаляют данные?)

Есть ли какое-либо решение для объема, удаляют в SQL Server?

Я не могу использовать УСЕЧЕННЫЙ, потому что я хочу использовать ГДЕ для ограничения строк в действии.

Есть ли, чему-нибудь нравится Массовое копирование (BCP) за, удаляют данные?

15
задан gbn 9 July 2010 в 06:59
поделиться

3 ответа

Нет.

Вы хотите удалить с предложением Where: это стандартный SQL.

Что вы можете сделать, это пакетные удаления, как это:

SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...

или если вы хотите удалить очень высокий процент строк ...

SELECT col1, col2, ... INTO #Holdingtable
           FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
           SELECT col1, col2, ... FROM #Holdingtable
25
ответ дан 1 December 2019 в 02:19
поделиться

Sychare Jedko,

Преимущество TRUNCATE заключается в том, что он позволяет избежать регистрации каждого удаления в журнале. Оператор TRUNCATE создаст одну запись (в журнале) для всего пакета.

0
ответ дан 1 December 2019 в 02:19
поделиться

Вы можете сделать пару вещей, если хотите удалить часть своей таблицы, а не TRUNCATE ит.

вы можете выбрать часть таблицы в новую таблицу, а затем переключить две, например:

SELECT *
INTO tmp_MyTable
FROM MyTable
WHERE Key='Value'

IF @@ROWCOUNT > 0
BEGIN
    EXEC sp_rename MyTable, old_MyTable, NULL
    EXEC sp_rename tmp_MyTable, MyTable, NULL
    TRUNCATE old_MyTable 
END

Во-вторых, если вы используете секционирование, вы можете создать идентичную (пустую) таблицу в той же схеме секционирования. .. и если таблица разбита на разделы в соответствии с вашей логикой архивирования / очистки, вы можете переместить один блок раздела из вашей основной таблицы в новую таблицу, а затем усечь новую таблицу .. Например:

ALTER TABLE MyTable
SWITCH PARTITION 15 TO purge_MyTable PARTITION 2 
GO; 

TRUNCATE TABLE purge_MyTable 

Ps. Разделы доступны в SQL 2005/08 Ent.

Надеюсь, это поможет!

4
ответ дан 1 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: