How do I remove duplicate records in a table?
The syntax is just slightly different:

DELETE q
FROM dbo.questions_tags AS q
WHERE EXISTS 
(
   SELECT 1
   FROM   dbo.questions_tags AS q1
   WHERE  q1.ctid &lt; q.ctid
   AND    q.question_id = q1.question_id
   AND    q.tag_id = q1.tag_id
);


Personally, I prefer to use a CTE. Then I can easily swap in a SELECT to validate what I am about to delete, and easily change the where clause to validate what I am going to keep:

;WITH q AS 
(
  SELECT question_id, tag_id, ctid,
    rn = ROW_NUMBER() OVER (PARTITION BY question_id, tag_id ORDER BY ctid)
  FROM dbo.question_tags
)
--DELETE q
SELECT * FROM q 
WHERE rn &gt; 1; -- to show keepers, change to = 1 



  I believe these semantics match yours, but please test.


Then, of course, add a proper key constraint before you let anybody insert any new nonsense into this table.