Microsoft SQL Server Management Studio 2008删除多个用户表

有没有简单的方法来删除数据库中的多个表,而不删除数据库并重新创build它? 在这种情况下,我们有超过100个删除。

我很高兴删除所有用户表并重新导入所需的数据,但无法触及任何数据库安全设置。

在对象浏览器中,导航到您感兴趣的数据库。将其展开并单击Tables文件夹。 打F7调出对象浏览器的详细信息。 select要删除的表格,然后按删除键。

任何理由不直接在T-SQL(与DROP TABLE )? 然后,只是创build适当的SQL脚本(如果你有一个你需要删除的表的列表,很可能会自动生成),你就不在了。

Tsql的答案build议。 我无法让下拉表在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被删除,而在第二个运行Table1可以被删除,因为Table2不在)。