nenadkostic's blog
April 7, 2012 | In: Code, SQL
Very useful piece of code, that we run from time to time, especially when your target database is lower version from the one you are working on.
use database_name declare @i int set @i = 0 while (@i<99) begin declare @table_name varchar(100) declare table_list cursor for select name from sysobjects o2 where xtype='U' and not exists ( select * from sysforeignkeys k join syscolumns c1 on (k.fkeyid = c1.id and c1.colid=k.fkey) join syscolumns c2 on (k.rkeyid = c2.id and c2.colid=k.rkey) where c2.id = o2.id and c1.id <> o2.id ) open table_list fetch next from table_list into @table_name while @@fetch_status = 0 begin print 'dropping table '+@table_name exec ('drop table '+@table_name) fetch next from table_list into @table_name end close table_list deallocate table_list set @i = @i+1 end