2011-10-18 197 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/

相关问题