BEGIN DECLARE @CONTROL_ID INTEGER, @RECORD_ID INTEGER, @ACT_RECORD_ID INTEGER, @VALUE VARCHAR(MAX), @NEW_VALUE VARCHAR(MAX), @INDEX INTEGER DECLARE c_Control_Values CURSOR FOR select CONTROL_ID,RECORD_ID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID IN (SELECT GUID FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 2) GROUP BY CONTROL_ID,RECORD_ID HAVING COUNT(GUID) > 1 ORDER BY RECORD_ID OPEN c_Control_Values FETCH NEXT FROM c_Control_Values INTO @CONTROL_ID, @RECORD_ID WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'RECORD: ' + CONVERT(VARCHAR(10),@RECORD_ID) SET @NEW_VALUE = '' SET @INDEX = 0 DECLARE c_ROWVALUES CURSOR FOR SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = @CONTROL_ID AND RECORD_ID = @RECORD_ID OPEN c_ROWVALUES FETCH NEXT FROM c_ROWVALUES INTO @VALUE WHILE @@FETCH_STATUS = 0 BEGIN IF @INDEX = 0 SET @NEW_VALUE = @VALUE ELSE SET @NEW_VALUE += ';' + @VALUE SET @INDEX += 1 FETCH NEXT FROM c_ROWVALUES INTO @VALUE END PRINT 'JETZT DAS UPDATE UND DELETE FÜR RECORD: ' + CONVERT(VARCHAR(10),@RECORD_ID) PRINT '@NEW_VALUE: ' + CONVERT(VARCHAR(500),@NEW_VALUE) DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = @RECORD_ID AND CONTROL_ID = @CONTROL_ID INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE) VALUES (@CONTROL_ID,@RECORD_ID,@NEW_VALUE) CLOSE c_ROWVALUES DEALLOCATE c_ROWVALUES FETCH NEXT FROM c_Control_Values INTO @CONTROL_ID, @RECORD_ID END CLOSE c_Control_Values DEALLOCATE c_Control_Values END