找回master库中被删除的系统表

接手的某个数据库实例中,master数据库中的所有系统表都被误删除掉了。

最直接影响就是一旦涉及到要查询这些系统表,就会出现错误。

例如,右键点击某个数据,查看属性时会出现如下图所示错误:

那么怎么找回这些表呢?其中一个方法就是找一个正常的实例,在master数据库下找到这些表,并把这些表的脚本导出来,

在被删掉掉的master库中运行这些脚本,再利用sp_MS_marksystemobject把这些表标识为系统对象。

其实,这些表的脚本在sqlserver的安装包中也可以找到:假设安装包路径为E:,则所在的路径为(这里以sqlserver 2008r2enterprise的安装包为例):

E:x64Setupsql_engine_core_inst_msiPFilesSqlServrMSSQL.XMSSQLInstall

例如spt_values和spt_monitor的脚本就是u_tables.sql

原文地址:https://www.cnblogs.com/ajiangg/p/4168787.html