home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / SQLING.EXE / Disk1 / data1.cab / Program_Executable_Files / CompactMetaDB.sql < prev    next >
Encoding:
Text File  |  1999-05-24  |  1.4 KB  |  46 lines

  1. USE SQLing
  2. GO
  3. CREATE table #tmp (db sysname)
  4. INSERT #tmp SELECT name FROM master..sysdatabases
  5. INSERT #tmp SELECT '#'+name FROM workdb
  6. DELETE conspects WHERE db NOT IN (select db FROM #tmp)
  7. DELETE notes  WHERE db NOT IN (select db FROM #tmp)
  8. DELETE rel WHERE db NOT IN (select db FROM #tmp)
  9. DELETE keysadd WHERE db NOT IN (select db FROM #tmp)
  10. DELETE patriklog WHERE db NOT IN (select db FROM #tmp)
  11. DELETE view_item WHERE id NOT IN (SELECT id FROM rel_view)
  12. DROP TABLE #tmp
  13. GO
  14. CREATE TRIGGER rel_view_DTrig ON rel_view5 FOR DELETE AS
  15. DELETE view_item4 FROM deleted, view_item4 WHERE deleted.id=view_item4.id
  16. GO
  17. DUMP TRAN SQLing WITH NO_LOG
  18. GO
  19. CREATE TABLE #tmp (a int, b int)
  20. DECLARE @key1 int, @i int, @ch int
  21. DECLARE autobus CURSOR FOR SELECT id FROM rel_view ORDER BY 1 FOR UPDATE OF id
  22. OPEN autobus
  23.     SELECT @i=0
  24.     FETCH NEXT FROM autobus INTO @key1
  25.     WHILE @@FETCH_STATUS=0 BEGIN
  26.         IF @i!=@key1
  27.             insert #tmp values(@key1, @i)
  28.         FETCH NEXT FROM autobus INTO @key1
  29.         SELECT @i=@i+1
  30.     END
  31. CLOSE autobus
  32. DEALLOCATE autobus
  33.  
  34. DECLARE auto CURSOR FOR select * from #tmp order by a FOR READ ONLY
  35. OPEN auto
  36. FETCH NEXT FROM auto INTO @key1, @i
  37.     WHILE @@fetch_status=0 BEGIN
  38.         UPDATE rel_view SET id=@i WHERE id=@key1
  39.         UPDATE view_item SET id=@i WHERE id=@key1
  40.         FETCH NEXT FROM auto INTO @key1, @i
  41.     END
  42. CLOSE auto
  43. DEALLOCATE auto
  44. DROP TABLE #tmp
  45. GO
  46.