MSIS Asked: 2019-08-29 13:47:18 +0800 CST2019-08-29 13:47:18 +0800 CST 2019-08-29 13:47:18 +0800 CST 非系统表在 SQL Server 2017 Dev 中显示为主数据库表 772 在尝试安装 AdventureWorks (运行它,针对主数据库查询它)失败几次后,我不知何故以某种方式结束了许多 AdventureWorks 表,最终成为默认实例的主数据库的一部分;请看附件,左中部分。我不知道该怎么做。请提出一些建议: database sql-server 1 个回答 Voted Best Answer Ronaldo 2019-08-30T07:06:28+08:002019-08-30T07:06:28+08:00 可能是您的一次尝试最终导致您create table在连接到主数据库时执行命令(这可能是您登录的用户的默认数据库 - 我自己去过那里,不是一个好习惯尽管)。我将列出几个选项: 1st - 只需删除额外的表格 您只是将一些用户表添加到主数据库,因此如果您只是删除它们不会有任何伤害。如果您没有在 SQL Server 2017 Dev 上安装任何类型的第三方软件或脚本,则可以从Tables文件夹中删除所有这些用户表,而不必担心会破坏某些内容。但不要从子文件夹中删除对象。 如果您连接到主数据库并查询sys.objects,您应该能够列出您创建的所有表: USE master; GO SELECT name, type_desc, create_date, is_ms_shipped FROM sys.objects WHERE type = 'U' AND is_ms_shipped = 0; GO 您还可以在正确安装 AdventureWorks 后检查表的名称,以确保只从主数据库中删除对应的表。 第二 - 从备份恢复(如果你碰巧有一个可用的) 由于主数据库是一个非常重要的数据库,甚至可能导致您的 SQL Server 无法启动,微软提供了有关如何恢复主数据库 (Transact-SQL)的文档,以防万一它损坏或类似情况。 第三 - 从模板重建 您可以按照有关如何重建系统数据库的文档进行操作。但是,使用这种方法有一个缺点:它就像 master、model、msdb 和 tempdb 系统数据库的工厂恢复。
可能是您的一次尝试最终导致您
create table
在连接到主数据库时执行命令(这可能是您登录的用户的默认数据库 - 我自己去过那里,不是一个好习惯尽管)。我将列出几个选项:您只是将一些用户表添加到主数据库,因此如果您只是删除它们不会有任何伤害。如果您没有在 SQL Server 2017 Dev 上安装任何类型的第三方软件或脚本,则可以从Tables文件夹中删除所有这些用户表,而不必担心会破坏某些内容。但不要从子文件夹中删除对象。
如果您连接到主数据库并查询
sys.objects
,您应该能够列出您创建的所有表:您还可以在正确安装 AdventureWorks 后检查表的名称,以确保只从主数据库中删除对应的表。
由于主数据库是一个非常重要的数据库,甚至可能导致您的 SQL Server 无法启动,微软提供了有关如何恢复主数据库 (Transact-SQL)的文档,以防万一它损坏或类似情况。
您可以按照有关如何重建系统数据库的文档进行操作。但是,使用这种方法有一个缺点:它就像 master、model、msdb 和 tempdb 系统数据库的工厂恢复。