В своё время написал скрипт для удаления мусора. С виртуальными компаниями работало тоже корректно, но давно не тестировал
Может, пригодится...
Код:
-----------------------------------------
-- М.Андреев 28.04.2005
-- Скрипт удаляет все данные "чужих" компаний, которых не должно быть в текущей базе
-- Запускать нужно от пользователя-владельца таблиц аксапты
----- BEGIN OF SCRIPT ------------------
declare @name varchar(1000);
DECLARE CT CURSOR FOR
select name
from dbo.sysobjects
where xtype = 'U'
and id in
(select id
from dbo.syscolumns
where name = 'DATAAREAID');
OPEN CT
WHILE 1=1
begin
FETCH FROM CT INTO @name
IF @@fetch_status=-1
BREAK;
IF @@fetch_status=-2
CONTINUE;
exec ('delete from '+@name+
' where NOT DATAAREAID IN (select id from DATAAREA)');
PRINT @name;
end;
DEALLOCATE CT
--------- END OF SCRIPT ----------