【问题标题】:Delete/Drop similar tables in SQL Server在 SQL Server 中删除/删除类似的表
【发布时间】:2015-11-13 03:04:08
【问题描述】:

我在 SQL Server 中有一个数据库,其中有许多类似的表,例如 dbo.Dos_150602_xyz。我尝试通过键入以下内容仅删除包含 1506 的表:

drop table dbo.Dos_1506*; 

但这没有用。我还能如何执行此操作?

谢谢。

【问题讨论】:

  • 这个link 可能会有所帮助。
  • @learningNew 分享了一个有用的链接,这将生成一个脚本,该脚本还可以帮助您交叉检查您的愿望表以删除它
  • 脚本将完成所有工作,只需修改/添加条件 - where Table_Name like '%1506%' and TABLE_TYPE = 'BASE TABLE'

标签: sql-server sql-delete


【解决方案1】:

只是为了让 OP 的工作更轻松。

示例表创建脚本: create table table_pattern_name_1 ( s1 varchar(20), n1 int ); create table table_pattern_name_2 ( s1 varchar(20), n1 int ); create table table_pattern_name_3 ( s1 varchar(20), n1 int ); create table table_pattern_name_4 ( s1 varchar(20), n1 int );

Table Drop 脚本: declare @cmd varchar(4000) declare cmds cursor for select 'drop table [' + Table_Name + ']' from INFORMATION_SCHEMA.TABLES where Table_Name like 'table_pattern_name_%' open cmds while 1=1 begin fetch cmds into @cmd if @@fetch_status != 0 break print @cmd exec(@cmd) end close cmds; deallocate cmds

SSMS 输出: drop table [table_pattern_name_1] drop table [table_pattern_name_2] drop table [table_pattern_name_3] drop table [table_pattern_name_4]

让我知道这是否适用于您的示例。

谢谢, 马特·琼斯 微软 SQL 服务器

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2010-09-05
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多