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

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

如果我想删除表

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

【问题讨论】:

    标签: sql-server-2005 drop-table


    【解决方案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.
    猜你喜欢
    • 1970-01-01
    • 2013-08-19
    • 2016-02-20
    • 2020-06-10
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多