AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 7251
Accepted
Ryaner
Ryaner
Asked: 2009-05-13 00:14:23 +0800 CST2009-05-13 00:14:23 +0800 CST 2009-05-13 00:14:23 +0800 CST

Microsoft SQL Server Management Studio 2008 删除多个用户表

  • 772

有没有一种简单的方法可以在不删除数据库并重新创建数据库的情况下删除数据库中的多个表?在这种情况下,我们有超过 100 个要删除。

我很高兴删除所有用户表并重新导入所需的数据,但无法触及任何数据库安全设置。

sql-server sql-server-2008
  • 4 4 个回答
  • 16857 Views

4 个回答

  • Voted
  1. Best Answer
    GilaMonster
    2009-05-13T05:19:52+08:002009-05-13T05:19:52+08:00

    在对象资源管理器中,导航到您感兴趣的数据库。展开它并单击 Tables 文件夹。按 F7 以显示对象资源管理器详细信息。选择要删除的表,然后按删除键。

    • 26
  2. Jon Skeet
    2009-05-13T00:35:12+08:002009-05-13T00:35:12+08:00

    有什么理由不直接在 T-SQL (with DROP TABLE) 中执行它?然后它只是创建适当的 SQL 脚本的一个案例(如果您有需要删除的表的列表,很可能会自动生成它)并且您离开了。

    • 2
  3. Ryaner
    2009-05-13T02:02:24+08:002009-05-13T02:02:24+08:00

    Tsql 按照建议回答。我无法让 drop 表在 tsql 中工作,但这成功了。

    declare @TABLE varchar(250)
    
    declare select_cursor cursor for
    select name from sysobjects where type='U'
    
    open select_cursor
    
    fetch next from select_cursor
    into @TABLE
    
    while @@FETCH_STATUS = 0
    begin
        print 'DROP TABLE '+@TABLE
    
        fetch next from select_cursor
        into @TABLE
    end
    
    close select_cursor
    deallocate select_cursor
    
    • 0
  4. Ole Lynge
    2013-02-14T10:02:34+08:002013-02-14T10:02:34+08:00

    您可以通过遍历它们并执行以下操作来删除多个表:

    EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"
    

    但是,如果您尝试删除由外键引用的表,您将收到如下错误

    Msg 3726, Level 16, State 1, Line 1
    Could not drop object 'dbo.Table1' because it is referenced by a FOREIGN KEY constraint.
    

    如果您只想手动执行此操作,则只需重复该语句几次,直到删除具有引用的表(例如,如果 Table2 具有对 Table1 的引用,则在第一次运行时 Table1 不能被删除,而 Table2 被删除,第二次然后可以删除 run Table1,因为 Table2 不再存在)。

    • 0

相关问题

  • 将管理员用户添加到 SQL Server 2008

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve