我的SSIS包中有一个C#脚本,它操作两个CSV文件并写入另一个CSV文件。新CSV文件中的数据经过查找匹配,然后在SQL Server数据库中更新。
CSV文件没有“rowguid”列,我的理解是SQL Server自己生成rowguid值。因此,在OLEDB目标中的列映射中,没有任何内容映射到rowguid变量。
在执行包时,我在ODB DashboardStats组件上收到以下错误,该组件将错误输出映射到数据库表: “无法将值NULL插入列'rowguid'
我查看了类似的帖子,但我不想让数据库中的rowguid列可以为空,因为它不是最好的做法。我也尝试在ODB DashboardStats中取消选中Keep Identity,如下图所示,但是也没有帮助。 在这种情况下,最好的办法是通过SSIS插入一个rowguid列吗?如果是这样,最好的方法是什么?(C#,SSIS newbie :()
以下是一些参考屏幕截图:
答案 0 :(得分:0)
在数据库表本身中,可以在rowguid上放置uniqueidentifier约束,这会自动生成数据并消除错误。示例如下:
ALTER TABLE [dbo].[TableName] ADD CONSTRAINT [MSmerge_df_rowguid_AA7400445B994489BB04D2C090DB574C] DEFAULT (NEWSEQUENTIALID()) FOR [rowguid]
GO