SSIS登台表 - 每次都可以重建吗?

时间:2011-01-10 19:20:09

标签: ssis

我有一个包,我需要在其中将平面文件加载到临时表,然后执行upsert到生产表。实际上,对于具有不同布局的不同文件,这必须发生多次。所以我们说的可能是15-20个临时表。

我可以将每个这些临时表创建为数据库中的永久表。但是有一部分我喜欢保持我的架构干净,所以我很乐意在开头使用create table语句和最后一个drop table来包装包。

这样做的缺点或成本是什么?

3 个答案:

答案 0 :(得分:2)

您必须计划的一个问题是失败。如果在程序包执行开始时创建表,并且程序包在到达drop-table任务之前失败,则会在数据库中保留一个临时表。

之前我使用过这种方法,并发现创建一个定期清理表的维护作业很有用。就我而言,我创建了具有唯一名称的表。如果重新创建具有相同名称的表,则必须在表已存在时计划该情况。

如果您没有永久临时表,则会丢失在解决问题时可能有用的信息(临时表中的数据)。

您可以考虑使用包含所有临时表的单独数据库。在包的开头,任务可以通过删除先前执行中的信息来准备登台表。然后,程序包加载当前运行的数据。

答案 1 :(得分:1)

需要创建一个临时登台表,其中包含ddl_admin或db_owner权限。

永久表需要标准的CRUD权限(如果使用TRUNCATE TABLE则除外)

否则,按照鲍勃的回答

答案 2 :(得分:0)

与bobs响应一起,在我的一些平面文件源包中,我使用了临时表。成功转换和加载后,程序包会通过将数据移动到存档来清除分段。归档数据的专家是,您可以看到提取包如何操作数据(如果您正在操作提取中的数据)。一个骗局是你已经保存了平面文件的副本,因此归档你的临时表只是多余的。