当前位置: 首页 > 面试题库 >

如何使用一个SQL查询从数据库中删除所有表?

樊琦
2023-03-14
问题内容

我不想键入所有表的名称以删除所有表。一个查询有可能吗?


问题答案:

使用 INFORMATION_SCHEMA.TABLES 视图获取表列表。在select语句中生成Drop脚本,并使用Dynamic SQL将其删除:

DECLARE @sql NVARCHAR(max)=''

SELECT @sql += ' Drop table ' + QUOTENAME(TABLE_SCHEMA) + '.'+ QUOTENAME(TABLE_NAME) + '; '
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_TYPE = 'BASE TABLE'

Exec Sp_executesql @sql

系统表 版本

DECLARE @sql NVARCHAR(max)=''

SELECT @sql += ' Drop table ' + QUOTENAME(s.NAME) + '.' + QUOTENAME(t.NAME) + '; '
FROM   sys.tables t
       JOIN sys.schemas s
         ON t.[schema_id] = s.[schema_id]
WHERE  t.type = 'U'

Exec sp_executesql @sql

注意: 如果foreign Keys在表之间定义了任何定义,则首先运行以下查询以 禁用foreign keys数据库中所有存在的内容。

EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

有关更多信息, 请在此处检查



 类似资料:
  • 问题内容: 我要删除所有具有以下条件的外键。 问题答案: 有一个名为的表,用于存储所有表约束。约束类型也保留在该表中。因此,通过过滤此类型,您可以访问所有外键。 如果创建动态查询(用于-对外键进行更改)以更改表,则可以达到更改所有表的约束的目的。 函数及其参数可确保至少有一个外键约束。

  • 问题内容: 那么,如何用一个命令删除SQL数据库中的所有索引?我有此命令可以使我获得全部20条左右的drop语句,但是如何从此“结果集”运行所有这些drop语句? 给我相同列表的另一个变体是: 我试图做“ exec(从vw_drop_idnex中选择cmd)”,但是它没有用。我正在寻找一种类似于for循环并逐一运行查询的东西。 ----------------------- 在Rob Farley

  • 我开始使用一个代码,使用Firebase实时数据库。我将它实现到我的解决方案中。连接和控制非常完美,所以我将其用于生产环境。 一段时间后,我在升级,我需要再次删除所有数据-但请稍候,控制台中最高根级别不再有删除按钮,并且一次只允许在一个选定项目中: 上次更新仅显示此消息,没有后续步骤: 只读 问:如何一次删除所有数据?

  • 我是JSP的新手,我正在尝试创建一个web界面,用户可以在该界面中输入他们想要删除的信息,并且该信息将在数据库表中删除。 在这里,他们应该输入和,然后应该删除具有两个指定ID的任何数据。但是,它不是从表中删除的。我有个例外 数组索引越界 下面是我的代码:

  • 问题内容: 如何使用manage.py和命令行从数据库中删除所有表?有什么方法可以执行带有适当参数的manage.py,以便可以从.NET应用程序执行它? 问题答案: 据我所知,没有任何管理命令可以删除所有表。如果你不介意破解Python,则可以编写自己的自定义命令来实现。你可能会发现该选项很有趣。文档说,为给定的应用程序名称打印DROP TABLE SQL语句。 更新:在此答案下方无耻地占用@M

  • 问题内容: 我有一张桌子,如下所示: 我想基于3个字段emp_name,emp_address和sex删除重复的条目。和我的结果表(删除重复项后)应类似于- 我不记得如何为此编写SQL查询。任何人都可以帮忙吗? 问题答案: 看起来所有四个列值都是重复的,因此您可以执行以下操作- 但是,如果婚姻状况可能有所不同,并且您还有其他根据其选择的列(例如,您希望基于create_date列作为最新记录),则