>DECLARE @lcField Char(40) >DECLARE @lcField2 Char(40) >DECLARE @lnNumero Integer >DECLARE @lnNumero2 Integer >DECLARE @loRecord nvarchar(128) > >DECLARE loCursor CURSOR LOCAL FOR >SELECT Numero,Field,Field2 FROM Relation > >OPEN loCursor >FETCH NEXT FROM loCursor INTO @lnNumero,@lcField,@lcField2 >WHILE @@fetch_status = 0 >BEGIN > PRINT 'Update Relation '+convert(varchar,@lnNumero)+'.' > > SELECT @lnNumero2=Numero FROM Field WHERE Field=@lcField > > UPDATE Relation SET NoField=@lnNumero2 WHERE Numero=@lnNumero > > SELECT @lnNumero2=Numero FROM Field WHERE Field=@lcField2 > > UPDATE Relation SET NoField2=@lnNumero2 WHERE Numero=@lnNumero > > FETCH NEXT FROM loCursor INTO @lnNumero,@lcField,@lcField2 >END >Isn't it the same as:
UPDATE Relation SET NoField = CASE WHEN Field = Field.Field THEN Field.Numero ELSE NoField END, NoField2 = CASE WHEN Field = Field.Field2 THEN Field.Numero ELSE NoField2 END FROM Relation INNER JOIN Field ON (Ralation.Field = Field.Field OR Relation.Field2 = Field.Field2)?