2008-09-17 88 views
2

我有一个特殊的系统在网络上,我们需要维护一个培训安装。该系统使用SQL Server 2000作为其数据库引擎,我需要建立一个系统,定期用生产数据库中的数据刷新培训数据库中的数据。如何使用生产数据库中的数据刷新培训数据库?

我想使用SSIS,因为我们有SQL 2005服务器我可以运行该过程。我有相当一部分SQL经验,但对于SSIS来说并不多。我一直在试图用“传输数据库任务”来做到这一点,但没有多少运气,因为它总是会引发错误。

如果我们忽略了使用的配置项等,并假装所有的数据库名称等等都是硬编码的,我有以下几点: 的单SSIS“传输数据库任务”具有以下属性:

  • 目的地覆盖:真
  • 操作:复制
  • 方法:DatabaseOnline

我收到的错误是:

Error: The Execute method on the task returned error code 0x80131500 (ERROR : errorCode=-1073548784 description=Executing the query "EXEC dbo.sp_addrole @rolename = N'XXXXX' " failed with the following error: "The role 'XXXXX' already exists 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={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}). The Execute method must succeed, and indicate the result using an "out" parameter.

我敢肯定,这里有一些明显的事情发生,但如果任务设置为覆盖角色的预存在应该没有关系?有谁知道我需要做些什么才能做到这一点?

回答

2

显然这应该在SQLServer 2005 SP2中修复see here。看起来像你需要确保修补客户机,如果你正在Visual Studio中运行SSIS包。

+0

感谢马特 - 我会介绍我的基础设施人员关于测试SP2。 – Dr8k 2008-09-17 23:16:16