第一個問題是重新命名資料庫問題:在企業管理器中是無法直接對資料庫重新命名的,只能在查詢分析器中操作
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status =0
begin
set @temp='kill'+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end
-- 上面建立一個從預存程序
-- exec killspid 'Test1' -- 調用預存程序關閉串連
-- exec sp_renamedb 'Test1','Test2' -- 重新命名資料庫
用以上方法可以重新命名資料庫,當然還有一種方法是在企業管理器中選擇資料庫->所有任務->分離資料庫->清除串連,然後直接直接調用
exec sp_renamedb 'Test1','Test2'
第二個問題是更改資料庫擁有者問題:在查詢分析器中選擇要更改的資料庫,執行如下代碼即可newowner為新的所有者
exec sp_MSForEachTable 'sp_changeobjectowner ''?'', ''newowner'''
第三個問題是資料表資料的匯入匯出的問題:人們在匯入匯出資料的時候常會導致資料庫物件的丟失,例如主鍵、標識、預設值等,解決的方法是在制定表複製或查詢那一步選擇第三項
在SQL Server資料庫之間複製對象和資料
選擇下一步,如果你只是要操作一部分表而不是整個資料庫的話,取消複製所有對象這個選項,點擊後面的選擇開啟選擇對象對話方塊,在其中選擇要操作的資料庫物件即可,點擊下一步,操作完成。
第四個問題是替換欄位內容的問題:如果你的資料庫被人注入病毒代碼了,又沒有備份,那就只有自己動手替換掉了
update dunktopic set 欄位 =replace(欄位,'被替換的內容','替換內容');
第五個問題是資料庫中表的所有者問題:在某些情況下,如果你恢複網站資料庫後,訪問網站的時候出現80040e21錯誤,
錯誤 '80040e21' ODBC 驅動程式不支援所需的屬性
那麼有可能是因為資料庫擁有者問題導致的,解決辦法是使用問題一中的方法更改資料庫的所有者為dbo或者其它的使用者即可。
第六個問題是資料還原問題,資料庫還原之後,訪問網站會莫名其妙的出現內部伺服器500錯誤,其實是因為因為沒有給資料庫使用者指派該資料庫許可權的問題,特徵就是該資料庫使用者的登入沒有了。解決辦法是:刪除沒有登入名稱的這個使用者,在企業管理器的安全性設定中,選擇剛才那個沒有登入名稱的使用者,給它分配剛才還原的資料的datawrite和dataread許可權。為安全起見,建議不要分配owner許可權。