Sql server 使用SSI在SQL Server之间复制数据
我需要将3000多行从一个SQL Server实例复制到另一个实例 目标具有实时网站使用的现有数据 使用SSIS中的数据流,插入了一个传输,该传输使用SQL视图从源获取数据,然后将其导入到目标表中。这确保了数据在我们的外部站点上保持最新 我想要实现的是,如果由于任何原因SSIS失败,目标表不会保留为空,从而破坏外部站点的功能 由于包中只使用了一个任务,SSI会将此任务设为原子任务吗?i、 e.如果在复制数据时失败,则不会使目标表为空或部分完成 更新: 多亏了那些指出“Replace”没有意义的人——这是我们之前使用Copy Object函数的一次尝试 当前使用副本时,它将放入3000行,但下次运行时,它将再次放入相同的3000行!我需要做的是有以下几点Sql server 使用SSI在SQL Server之间复制数据,sql-server,ssis,Sql Server,Ssis,我需要将3000多行从一个SQL Server实例复制到另一个实例 目标具有实时网站使用的现有数据 使用SSIS中的数据流,插入了一个传输,该传输使用SQL视图从源获取数据,然后将其导入到目标表中。这确保了数据在我们的外部站点上保持最新 我想要实现的是,如果由于任何原因SSIS失败,目标表不会保留为空,从而破坏外部站点的功能 由于包中只使用了一个任务,SSI会将此任务设为原子任务吗?i、 e.如果在复制数据时失败,则不会使目标表为空或部分完成 更新: 多亏了那些指出“Replace”没有意义的人
- 将现有目标数据保存在安全的地方,以防出现问题
- 截断目标表
- 从源复制数据
- 如果出现任何错误,请截断目标表并导入备份的数据
在SSIS中执行此操作的最佳方法是什么?我有一个任务失败(例如pk冲突),并且复制的行没有回滚,我必须在重新启动任务之前删除它们 你应该测试一下 我也不知道你说的“替换”是什么意思
您要替换现有行吗?更新现有行?听起来像是在寻找一个事务,如果在此过程中出现任何故障,该事务将回滚(撤消) 要么全力以赴,要么一事无成 SSIS可以很好地处理事务。 描述了一种类似于您的情况,首先删除一些行 其中一个重要步骤是: 包中存在TransactionOption属性 液位,容器液位(例如,对于回路, Foreach循环、序列等),以及 就像任何控制流任务一样 (例如,执行SQL任务、数据流) 任务等)。TransactionOption可以是 设置为以下选项之一:
而不是一个填充和填充策略,考虑合并数据。
- 让我们调用原始表基
- 创建一个STG表格,其列集与原始表格相同
- 截断并导入到STG中
- 使用来自STG的任何新数据更新BASE(通过业务密钥加入)
- 从不存在的STG插入底座
此方法具有零停机时间和无缝集成的优点。您所说的“使用替换将其导入目标表”是什么意思?你能为每一步提供一些DDL来显示你在做什么吗?我现在更新了这个问题,我错误地说它是一个替换,因为这是我之前尝试过的
* Required - if a transaction exists join it else start a new one
* Supported - if a transaction exists join it (this is the default)
* NotSupported - do not join an existing transaction