如何从给定数据库中删除所有带有前缀“bkp”的表?

Posted

技术标签:

【中文标题】如何从给定数据库中删除所有带有前缀“bkp”的表?【英文标题】:How to delete all tables with prefix "bkp" from a given database? 【发布时间】:2010-12-12 21:11:39 【问题描述】:

我有一个 SQL server 2005。在那个服务器上我有 3 个数据库 -> a、b、c。

如果我想删除表

    仅来自数据库“c”的表。 表名应以“bkp”开头 表应在前一天创建。

【问题讨论】:

【参考方案1】:

试试这个:

USE C
GO

SELECT
'DROP TABLE ' + name
FROM sys.tables
WHERE create_date >= '20101211'   -- substitute your date you're interested in
AND name like 'bkp%'

这将创建一个DROP TABLE:.... 语句列表作为输出 - 将它们复制并粘贴到新的 SSMS 窗口中并执行它们 - 你就完成了!

【讨论】:

我的疑问是……Sys.Tables 对所有数据库都很常见。那么......它会从数据库中删除吗? @Anish: 不,不是 - sys.tables 特定于您所在的数据库 - 当您执行 USE C 时,您只会获得数据库中的表C.

以上是关于如何从给定数据库中删除所有带有前缀“bkp”的表?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除数据库中的所有 wordpress 表?

如何从 MySQL 中表的每一列的名称中删除前缀?

从给定数据库中选择所有表时,如何将 [dbo] 前缀附加到表名?

如何使用 cbt 从 BigTable 中删除带有前缀键的行范围

如何从表中选择哪个名称存储在另一个表中带有“0”前缀的列中

如何最好地修改带有表前缀的 sql 查询