刪除SQL Server中“壞表”的方法
SQL Server 數據庫中某些無法使用的表很讓人頭疼,那么,如何才能刪除這些“壞表”呢?下文將為您介紹這種方法,供您參考。
在一些網站或者軟件系統中,由于安全或者程序異常等問題,可能會在SQL Server 2000中造成一個異常問題:在企業管理器中打開數據庫發現有一些“壞表”,即無法使用,也無法正常刪除。其原因往往是因為在嘗試建表的過程中,只向數據庫服務器的系統表sysobjects中寫入了類型為“U”的記錄,卻并未真正在數據庫中成功創建該表的實體。ok,解決問題有思路了:
假設“壞表”的表名為cmd,那么我們在查詢分析器中對當前的數據庫寫一個sql語句:
delete from sysobjects where [name]='cmd' and xtype='U'
按F5執行,可能會碰到一個錯誤提示:“未啟用對系統目錄的特殊更新。系統管理員必須重新配置 SQL Server 以允許這種操作。” 解決這個小小的問題的方法是:打開mssql server 屬性---》服務器選項----》啟用對系統目錄的特殊更新(允許對系統目錄進行直接修改) 即可。之后重新在查詢分析器中執行剛才的sql語句。
執行成功后。在企業管理器中會發現那個壞表已經不存在了。
[ 注:SQL2005中,由于微軟做了重大調整,正常情況下不允許對系統表進行即席更新操作。所以本文提到的問題目前僅適用于SQL2000數據庫,敬請注意 ]