備份還原資料庫後,資料表擁有者常為原使用者而非 dbo,導致新環境查詢報「資料表名稱無效」;若強制建立原使用者又會報「使用者已存在」。最佳解法是統一改為 dbo。
sp_changeobjectowner-- 單一資料表 EXEC sp_changeobjectowner '[bbsdb].[dv_style]', 'dbo'; -- 預存程序 EXEC sp_changeobjectowner 'usera.hishop_creatorder', 'dbo';
也可用 sp_changedbowner 變更資料庫擁有者。
右鍵資料表 → 設計表 → 點選「條件約束」圖示(或右鍵選「檢查約束」)→ 「資料表」頁 → 修改擁有者下拉選單。
sp_configure 'allow updates', 1; reconfigure with override; UPDATE sysobjects SET uid = 1 WHERE uid <> 1; sp_configure 'allow updates', 0; reconfigure with override;
警告:此法直接修改系統表,風險高,且第二次執行會出錯,不建議常規使用。
優先使用 sp_changeobjectowner,安全且支援批次腳本處理。