建表存储过程建在了错误的库上解决方法

来源:互联网 发布:java多态原理 编辑:程序博客网 时间:2024/06/04 00:41
 

在工作中曾碰到过这样一个问题,一个建表的存储过程本应在mmis6库中运行,但当时没有注意,结果建在了master库中,展开master库,急了,100多个表建在master库中,在企业管理器中删除也不怎么现实,怎么解决呢?经过仔细研究终于想出了解决的方法。

(1)在这100多个表中随意找出一个表,例如:BuyerReturn

use master

select * from sysobjects where name like 'BuyerReturn'

找出crdate列对应的值,例如找出的值为:2007-10-14 01:36:14.113

(2)删除在2007-10-14 01:36:14.113时建立的所有表,由于时间不一定就在这一时刻,所以时间应该选定在一个小的范围内。

use master

delete from sysobjects where xtype='u' and crdate between '2007-10-14 01:00:00' and '2007-10-14 02:00:00'

具体的时间范围大家可以根据实际情况进行控制。

此时可能会出现如下错误:“未启用对系统目录的特殊更新。系统管理员必须重新配置 SQL Server 以允许这种操作。” 解决这个小小的问题的方法是:打开mssql server 属性---》服务器选项----》启用对系统目录的特殊更新(允许对系统目录进行直接修改) 即可。(或者:企业管理器---》工具---》SQL Server 配置属性---》服务器设置---》允许对系统目录直接进行修改)之后重新在查询分析器中执行刚才的sql语句。

use master

delete from sysobjects where xtype='u' and crdate between '2007-10-14 01:00:00' and '2007-10-14 02:00:00'

问题就解决了。