需要创建一个SSIS包供用户直接修改表

时间:2013-05-15 10:27:19

标签: user-controls ssis

我需要允许几个用户修改我的数据库中的表,最好是作为集成包的一部分,然后将更改提交到我们的实时数据库。

请允许我进一步解释:

我们有一个从一个数据库系统到另一个数据库系统的自动导入任务,并且正在进行数据转换。

作为此任务的一部分,在最终导入之前运行各种检查,并将具有不完整或不正确数据的任何行发送到拒绝表并从导入表中删除。

我现在需要允许一些高级用户能够在重新登台并提交到实时数据库之前查看并更正拒绝表中丢失/不正确的条目。 (显然,它会在提交前重新检查,如果仍然错误则会重新拒绝)。

任何人都可以告诉我在SSIS中需要做什么来向从本地PC运行此软件包的用户显示特定表(例如MyDatabase.dbo.Reject_Table)的内容(当然,软件包将位于在服务器上。)

然后他们需要能够修改表格的内容 - 一次一行或集体。不打扰哪个)。

完成后,他们点击“继续”或“下一步”类型按钮,然后继续运行包的其余部分,我非常乐于写作。

这只是我正在努力的互动阶段,我真的很感激一些建议。

由于 克雷格

1 个答案:

答案 0 :(得分:2)

这是SSIS中的非本机功能。

可以在脚本任务中编写你想要的任何东西,其中包括GUI组件。 (我曾经有一个包播放音乐)。在您的数据流中,您将拥有一个脚本组件,用于编辑通过组件的每一行。

为什么这是一个坏主意

适用性 - 这不是SSIS的真正含义。您将遇到的最大挑战是数据流与数据的形状紧密相关。 Customer的拒绝表可能与Phone的拒绝表不同。

成本 - 您如何允许这些高级用户运行SSIS包?如果答案涉及在他们的计算机上安装SSIS,那么您正在寻找SQL Server的生产许可证。对于SQL Server 2005-2008R2,每个插槽的容量为8k到23k ish,而对于SQL Server 2012 +,每个 core 都是疯狂的。

什么是更好的方法

与往常一样,我会将问题分解为较小的任务,直到我能够解决它。我会做两个问题陈述

  1. 作为数据管理员,我需要能够纠正(编辑)不完整的数据,以便将数据导入我们的应用程序。
  2. 作为X,我需要能够导入(工作流程)更正的被拒绝数据,以便我们能够正确地向客户收费(或者无论原因是什么)。
  3. 编辑数据。我会创建一个基本网页或胖客户端应用程序来提供编辑功能。 DataGridView是一种做法。哎呀,您可以放弃自定义开发,只需将Access前端打到表中,然后让它们通过它编辑数据。

    导入更正的数据。这是我使用SSIS的地方,但可能不是唯一的。我可能会考虑在所有拒绝表中添加一个列,指示它是否已准备好进行重新处理。对于每个拒绝表,我都有一个包,用于查找标记为就绪的任何行。我可能会使用Delete first模式删除已标记的数据,并将其插入生产表或将其路由回拒绝表以进一步修复。启动软件包的机制可能是有意义的。因为我很懒,

    1. 我有一个运行包和
    2. 的SQL代理作业
    3. 创建可以启动该作业的存储过程
    4. 将该存储过程的安全性授予数据管理员
    5. 向管家提供一个大红色按钮,上面写着Import如何实际实施将取决于您如何解决编辑问题。