Я бы сделал то же самое, что и Гордон, но вместо этого я бы переименовал объекты:
SELECT GlassType,
Height,
Width,
SUM(Quantity)
INTO dbo.NewTable
FROM dbo.YourTable
GROUP BY GlassType,
Height,
Width;
GO
EXEC sp_rename N'dbo.YourTable',N'OldTable';
GO
EXEC sp_rename N'dbo.NewTable',N'YourTable';
GO
Это означает, что у вас все еще есть копия вашей старой таблицы, которую вы не сможете на TRUNCATE
, если у вас есть какие-либо внешние ключи. Тем не менее, вам придется воссоздать любые существующие ограничения и индексы для нового YourTable
. Затем я создам уникальное ограничение на вашей таблице, чтобы вы не могли получить дубликаты в будущем.
ALTER TABLE dbo.YourTable ADD CONSTRAINT UC_TypeHeightWidth UNIQUE (GlassType,Height,Width);