本文將介紹當您嘗試使用資料庫發行精靈編寫指令碼時,可能發生【由於該物件目前的狀態,導致作業無效。(SqlPubWiz)】的錯誤,該如何解決?
當您嘗試利用資料庫發行精靈來產生指令碼,以做為部署資料庫或進行資料庫降級使用,可能發生【由於該物件目前的狀態,導致作業無效。(SqlPubWiz)】的錯誤(如下圖)。
首先說明發生這個錯誤的
環境如下:- Windows 7 Enterprise(x86)
- SQL Server 2008 R2 with sp1
- Visual Studio 2010 with sp1
- 資料庫發行精靈版本:1.4(預設程式路徑為 C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\1.4)
若您嘗試在 SQL Server 2008 R2 中還原 SQL Server 2000 的資料庫備份集,接著使用資料庫發行精靈來把還原後所有的資料庫物件和資料編寫成指令碼,進而作為降級或部署至另一台 SQL Server 2000 伺服器時,執行到第二個步驟發生上圖【由於該物件目前的狀態,導致作業無效。(SqlPubWiz)】的錯誤訊息。發生問題的原因有可能是因為還原時所建立的資料庫名稱與原始的資料庫名稱大小寫不一致所造成。
【解決方法】
發生這個錯誤的原因,有可能是因為資料庫名稱大小寫的關係,若原本的資料庫名稱為 aBC,若您在還原資料庫時,資料庫名稱全部都輸入成為小寫(abc),可能導致發生這個問題,請試著將資料庫名稱改為和來源資料庫一樣的大小寫,再嘗試使用資料庫發行精靈來編寫指令碼。。
【參考資料】
- SqlPubWiz Command Line: Error: Operation is not valid du e to the current state of the object
- SQL 2008 to SQL 2005 for web server
【延伸閱讀】