Есть ли способ удалить все строки в таблице, кроме одной (случайной) строки, без указания имен столбцов в инструкции DELETE
?DELETE EXCEPT TOP 1
Я пытаюсь сделать что-то вроде этого:
CREATE TABLE [dbo].[DeleteExceptTop1]([Id] INT)
INSERT [dbo].[DeleteExceptTop1] SELECT 1
INSERT [dbo].[DeleteExceptTop1] SELECT 2
INSERT [dbo].[DeleteExceptTop1] SELECT 3
SELECT * FROM [dbo].[DeleteExceptTop1]
DELETE
FROM [dbo].[DeleteExceptTop1]
EXCEPT
SELECT TOP 1 * FROM [dbo].[DeleteExceptTop1]
SELECT * FROM [dbo].[DeleteExceptTop1]
Окончательный SELECT
должен дать один ряд (может быть любой из трех).
Вы пытаетесь выбрать одну случайную строку или пытаться удалить из таблицы все, кроме одной случайной строки? – Bill
@Bill - последний.Спасибо –
В таблице есть ПК? Если это так просто, где PK! = (Выберите max (PK)) – Paparazzi