sql-server - SSIS 返回不正确的错误
问题描述
我创建了 SSIS 包,它MyTable
在 SQL Server 中创建了一个带有列的表BaseVariantVersionID
。程序首先将数据插入到这个表中。
在包的最后,我应该BaseVariantVersionID
从表中删除列。
第一次调试没问题。但在第二次尝试时,SSIS 返回验证错误。它不允许使用 重新创建表BaseVariantVersionID
,因为下一步包无法在列中插入,现在未显示。
也许您知道一些禁用当前数据库检查的属性?
更新
我在所有步骤后删除列。第一步,我用列重新创建了数据库。但系统返回错误 - 看起来它使用现有表进行验证。
解决方案
这可能是我能想到的几个问题。
如果在包的开头创建它之前已经存在,则必须绝对删除该表。
示例执行 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 中手动添加列,然后双击出现错误的任务,任何缺失字段错误都会消失(现在该列已存在)。之后,您可以保存包并退出。
推荐阅读
- c# - IdentityServer4 CORS 设置与 EntityFramework
- ios - 使用 x 自定义布局之一展开 UITableViewCell
- cypress - 安装 Cypress 时出错:Cypress 无法运行,因为此二进制文件在此处没有可执行权限:
- reactjs - 如何将数据从 mapStateToProps 传递到父组件?
- php - 在特定日期对客户进行条带化收费
- reactjs - 您如何通过使用带有 jest 的外部帮助文件来模拟外部依赖项?
- python - 通过/失败数据框示例
- angular - 单元测试一个 ng-select 下拉列表(Angular,Jasmine)
- c# - 如何授权 Ajax 请求并验证 JWT 令牌是否有效 ASP.NET
- printing - 如何打印(物理打印机)存储在 blob(表)中的 PDF 文件