DECLARE @ID INT, @IDNew INT, @Systemovy NCHAR(1), @Nazev NVARCHAR(50), @cmd NVARCHAR(MAX) DECLARE CursorX CURSOR LOCAL FAST_FORWARD FOR SELECT ID, Systemovy, Nazev FROM TabFiltr WHERE BrowseID=130 ORDER BY ID OPEN CursorX WHILE 1=1 BEGIN FETCH NEXT FROM CursorX INTO @ID, @Systemovy, @Nazev IF @@FETCH_STATUS <> 0 BREAK SET @IDNew = ISNULL((SELECT MAX(ID) FROM TabFiltr),0)+1 SET @cmd = N'' SELECT @cmd = @cmd + name + ', ' FROM sys.columns WHERE is_computed = 0 AND is_identity = 0 AND object_id = OBJECT_ID('TabFiltr') AND name NOT IN ('ID','GUID','BrowseID') SELECT @cmd = LEFT(@cmd, LEN(@cmd) - 1) SELECT @cmd = 'INSERT INTO TabFiltr(ID, GUID , BrowseID, ' + @cmd + ') SELECT TOP 1 ' + CONVERT(NVARCHAR(10), @IDNew) + ', NEWID(),1852, ' + @cmd + ' FROM TabFiltr WHERE BrowseID=130 AND ID=' + CONVERT(NVARCHAR(10), @ID) + ' AND NOT EXISTS (SELECT 1 FROM TabFiltr WHERE BrowseID=1852 AND Nazev=''' + CONVERT(NVARCHAR(50), @Nazev) + ''' AND Systemovy=''' + CONVERT(NVARCHAR(10), @Systemovy) + ''') ' EXEC (@cmd) END CLOSE CursorX DEALLOCATE CursorX