我正在 SQL Server 的 2008 R2 实例上运行复制数据库向导。
我要复制的数据库是 SQL 2000 数据库。 我将该数据库复制到另一个 SQL SErver 2008 R2。
向导对两台服务器都使用 SQL 身份验证,并且都是系统管理员。
当我运行它时,出现以下错误(仅供引用,我已尝试复制登录名并将其保留):
Event Name: OnError Message: ERROR : errorCode=-1073548784 description=Executing the query "sys.sp_addrolemember @rolename = N'RandomRoleName..." failed with the following error: "The role 'RandomRoleName' does not exist in the current database.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. helpFile= helpContext=0 idofInterfaceWithError={C81DFC5A-3B22-4DA3-BD3B-10BF861A7F9C} StackTrace: at Microsoft.SqlServer.Management.Dts.DtsTransferProvider.ExecuteTransfer() at Microsoft.SqlServer.Management.Smo.Transfer.TransferData() at Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
如有任何帮助,我们将不胜感激!
吉姆
最佳答案
我的建议是不要使用复制数据库向导。在 2000 服务器上创建数据库的完整备份,然后在 2008 服务器上恢复它。
如果你用谷歌搜索“Microsoft.SqlServer.Management.Dts.DtsTransferProvider.ExecuteTransfer Copy Database Wizard”,你会发现很多人都遇到过同样的错误或其他几乎相同的 smo 错误……似乎没有人遇到过过去了。
这并不是说它不可能...只是,恢复备份比向导或向导故障排除要容易得多。祝你好运。
https://stackoverflow.com/questions/6227305/