Answers:
有什么理由不直接在T-SQL(带有DROP TABLE
)中这样做吗?然后,这只是创建适当的SQL脚本的一种情况(如果您有需要删除的表的列表,很可能会自动生成它)而您走了。
Tsql的答案如所建议。我无法使drop table在tsql中工作,但这确实成功了。
declare @TABLE varchar(250)
declare select_cursor cursor for
select name from sysobjects where type='U'
open select_cursor
fetch next from select_cursor
into @TABLE
while @@FETCH_STATUS = 0
begin
print 'DROP TABLE '+@TABLE
fetch next from select_cursor
into @TABLE
end
close select_cursor
deallocate select_cursor
您可以通过遍历多个表并执行以下操作来删除多个表:
EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"
但是,如果您尝试删除外键引用的表,则会出现类似以下的错误
Msg 3726, Level 16, State 1, Line 1
Could not drop object 'dbo.Table1' because it is referenced by a FOREIGN KEY constraint.
如果您只是想手动进行操作,则只需重复几次该语句,直到删除带有引用的表(例如,如果Table2具有对Table1的引用,则在第一次运行时不能删除Table1,而在删除Table2时不能删除它)由于不再有Table2,因此可以删除运行Table1)。