如何在一个命令中从一个数据库中删除多个表。 像,
> use test;
> drop table a,b,c;
其中a,b,c是数据库测试中的表。
答案 0 :(得分:111)
示例:
假设表A有两个孩子B和C.然后我们可以使用以下语法删除所有表。
DROP TABLE IF EXISTS B,C,A;
这可以放在脚本的开头,而不是单独删除每个表。
答案 1 :(得分:67)
SET foreign_key_checks = 0;
DROP TABLE IF EXISTS a,b,c;
SET foreign_key_checks = 1;
然后你不必担心以正确的顺序丢弃它们,也不用担心它们是否真的存在。
N.B。这仅适用于MySQL(如问题所示)。其他数据库可能有不同的方法来执行此操作。
答案 2 :(得分:0)
如果有很多表要删除,则这是一种懒惰的方式。
使用以下内容获取表格
从结果集中复制并粘贴表名,并将其粘贴到DROP命令之后。
答案 3 :(得分:-3)
declare @sql1 nvarchar(max)
SELECT @sql1 =
STUFF(
(
select ' drop table dbo.[' + name + ']'
FROM sys.sysobjects AS sobjects
WHERE (xtype = 'U') AND (name LIKE 'GROUP_BASE_NEW_WORK_%')
for xml path('')
),
1, 1, '')
execute sp_executesql @sql1