Удалить все, кроме верхних n, из таблицы базы данных в SQL

Я бы выбрал столбец ID — набор sql-query строк, которые вы хотите sql-statement сохранить во временной таблице sql-statement или табличной переменной. Затем sql-syntax удалите все строки, которые sql не существуют во временной sql таблице. Синтаксис, упомянутый sql-syntax другим пользователем:

DELETE FROM Table WHERE ID NOT IN (SELECT TOP 10 ID FROM Table)

Имеет sqlselect потенциальную проблему. Запрос sqlselect «SELECT TOP 10» будет выполняться sql-select для каждой строки в таблице, что sql-query может сильно сказаться на select-statement производительности. Вы хотите sql-statement избежать повторения одного sql-statement и того же запроса снова и sql-syntax снова.

Этот синтаксис должен sqlselect работать, основываясь на sql-query том, что вы указали в качестве sql исходного оператора SQL:

create table #nuke(NukeID int)

insert into #nuke(Nuke) select top 1000 id from article

delete article where not exists (select 1 from nuke where Nukeid = id)

drop table #nuke

sql

2022-11-12T02:21:46+00:00