DELETE
ステートメントに列名を指定せずに、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
は1つの行を生成する必要があります(3つのいずれかである可能性があります)。