Используя функциональные возможности CTE из SQL Server 2005, вы можете удалять повторяющиеся записи следующим образом
(PS. Я не вижу дизайн, так что это подход.)
DECLARE @Table TABLE(
ID INT,
FK INT,
VName VARCHAR(50)
)
INSERT INTO @Table (ID,FK,VName) SELECT 1, 1, 'A'
INSERT INTO @Table (ID,FK,VName) SELECT 2, 1, 'A'
INSERT INTO @Table (ID,FK,VName) SELECT 3, 1, 'A'
INSERT INTO @Table (ID,FK,VName) SELECT 4, 2, 'B'
INSERT INTO @Table (ID,FK,VName) SELECT 5, 2, 'B'
INSERT INTO @Table (ID,FK,VName) SELECT 6, 2, 'B'
;WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY FK ORDER BY ID) RowNumber
FROM @Table
)
DELETE FROM CTE WHERE RowNumber > 1
SELECT * FROM @Table