首页 > 解决方案 > SSIS 返回不正确的错误

问题描述

我创建了 SSIS 包,它MyTable在 SQL Server 中创建了一个带有列的表BaseVariantVersionID。程序首先将数据插入到这个表中。

在包的最后,我应该BaseVariantVersionID从表中删除列。

第一次调试没问题。但在第二次尝试时,SSIS 返回验证错误。它不允许使用 重新创建表BaseVariantVersionID,因为下一步包无法在列中插入,现在未显示。

也许您知道一些禁用当前数据库检查的属性?

更新

我在所有步骤后删除列。第一步,我用列重新创建了数据库。但系统返回错误 - 看起来它使用现有表进行验证。

在此处输入图像描述

标签: sql-serverssisoledb

解决方案


这可能是我能想到的几个问题。

如果在包的开头创建它之前已经存在,则必须绝对删除该表。

示例执行 SQL 任务:

IF OBJECT_ID('MyTable', 'U') IS NOT NULL
    DROP TABLE MyTable
GO

CREATE TABLE MyTable (etc...) GO
ALTER TABLE MyTable ADD COLUMN (etc...) GO

其次,您可以DelayValidation = True在数据流任务属性窗口中进行设置(通常在设计区域中单击数据流任务后位于右下角)。这会将验证延迟到运行时。

如果此时出现缺失字段错误,您可以在 SQL Server Management Studio 中手动添加列,然后双击出现错误的任务,任何缺失字段错误都会消失(现在该列已存在)。之后,您可以保存包并退出。


推荐阅读