2

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

我想使用 SSIS,因为我们有可以运行该过程的 SQL 2005 服务器。我有相当多的 SQL 经验,但对 SSIS 的经验不多。我一直在尝试使用“传输数据库任务”来执行此操作,但运气不佳,因为它总是会引发错误。

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

  • 目的地覆盖:真
  • 行动:复制
  • 方法:数据库在线

我收到的错误是:

错误:任务上的 Execute 方法返回错误代码 0x80131500(错误:errorCode=-1073548784 描述=执行查询“EXEC dbo.sp_addrole @rolename = N'XXXXX'”失败,出现以下错误:“角色'XXXXX'已经存在于当前数据库中。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。helpFile= helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23- 9739-DA807BCDC2AC})。Execute 方法必须成功,并使用“out”参数指示结果。

我敢肯定这里发生了一些明显的事情,但是如果任务设置为覆盖角色的预先存在,那么肯定不重要吗?有谁知道我需要做什么才能让这个工作?

4

1 回答 1

2

显然这应该在 SQLServer 2005 SP2 中修复,请参见此处。如果您从 Visual Studio 中运行 SSIS 包,您似乎也需要确保修补客户端计算机。

于 2008-09-17T12:24:12.830 回答