回答

收藏

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

技术问答 技术问答 69 人阅读 | 0 人回复 | 2023-09-13

我不想输入所有表的名称来删除所有表。有可能查询一下吗?
/ V- u/ V+ O" g4 Y                                                               
; }" y4 `% F  N7 q    解决方案:                                                                3 F0 S9 C! q6 A
                                                                使用 INFORMATION_SCHEMA.TABLES    视图获取表列表。select语句中生成Drop并使用脚本Dynamic SQL将其删除:
5 v0 m- R* @# P2 vDECLARE @sql NVARCHAR(max)=''SELECT @sql  = ' Drop table '   QUOTENAME(TABLE_SCHEMA)   '.'  QUOTENAME(TABLE_NAME)  FROM   INFORMATION_SCHEMA.TABLESWHERE  TABLE_TYPE = 'BASE TABLE'Exec Sp_executesql @sql系统表    版本9 N( r- ^& c8 J  @( z, t) s' U
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如果在表之间定义了任何定义,请先操作以下查询 禁用foreignkeys所有存在于数据库中的内容。
9 a9 A! x5 U& {7 M& h7 H2 WEXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"更多信息,    请在这里检查    。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则