2011-10-18 42 views
2

我試圖將數據庫從SQL Server 2000實例升級到SQL Server 2008實例。我通過右鍵單擊數據庫並選擇複製數據庫來完成此操作。我現在的問題是,我在日誌文件中收到此錯誤:將SQL Server 2000數據庫複製到SQL Server 2008時出錯

的OnError,AQUE-SQLDEV,NT AUTHORITY \ SYSTEM,aque-db2000_aque-sqldev_sql2008_Transfer對象 任務,{F0ACDE4D-D023-400C- BE3C-91CD3A537988},{40E67169-0F3F-4F86-AD2E-6E2CB532BA5C},18/10/2011 15:38:37,18/10/2011 15:38:37,0,0x,用戶'WebUser 」。 堆棧跟蹤:在在 微軟在 Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList(SqlSmoObject [] 對象) Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList(DependencyCollection depList,SqlSmoObject []對象)。 SqlServer.Management.Smo.Transfer.Microsoft.SqlServer.Management.Common.ITransferMetadataProvider.SaveMetadata() 處 Microsoft.SqlServer.Management.Smo Microsoft.SqlServer.Management.Dts.DtsTransferProvider.Configure(ITransferMetadataProvider metadataProvider)。 Transfer.GetTransferProvider()
at Microsoft.SqlServer.Management.Smo.Transfer.TransferData()at M內部異常 - >創建沒有關聯登錄的用戶不是 SQL Server 2008中受支持。

有沒有人知道爲什麼會發生這種情況?

感謝,

薩欽

+1

「有誰知道爲什麼會發生這種情況嗎?「 - >>>'創建沒有關聯登錄的用戶在SQL Server 2008中不受支持' –

+0

我確實知道,但我該如何防止嚮導創建這樣的用戶? –

+3

不要使用'拷貝數據庫' - 創建一個在SQL Server 2000上備份和在SQL Server 2008上恢復。 –

回答

1

基於這聽起來像你需要的是相同的登錄/用戶的SQL 2000服務器上存在匹配的SQL 2008服務器上首先創建一個登錄錯誤。你可以做兩件事情:

  1. 在2008年創建一個新的數據庫遷移到
  2. 在2008年,新的登錄與從SQL 2000
  3. 現有登錄映射到新創建一個新的登錄步驟#數據庫1
  4. 運行復制數據庫嚮導

如果是我,我會做的marc_s建議和執行上的SQL 2000的現有數據庫的完整備份,然後還原到一個空數據庫中sql 2008.如果您可以將數據庫屬性中的兼容性模式更新爲2008年。我已經完成了數百次,並且像魅力一樣工作。

+0

在我的情況下,它是一個「孤立登錄」。源數據庫在Databases//security/users下列出了一個SQL登錄名,但數據庫/安全/登錄 - 我刪除了孤兒,嚮導很高興。 –

1

原因可能是具有新數據庫名稱的文件已存在於文件系統中。當我們將數據庫X重命名爲X_Old時,我們遇到了這種情況,並試圖將數據庫Y複製到X中。由於數據庫X_Old仍與文件名X關聯,因此我們遇到了這種情況。

要麼刪除衝突的數據庫,要麼重命名文件在文件系統上。

請參閱http://codecopy.wordpress.com/2012/01/03/error-while-copying-a-database/

相關問題