C# 无法将值NULL插入列';rowguid';
我的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新手:() 以下是一些可供参考的屏幕截图:C# 无法将值NULL插入列';rowguid';,c#,sql-server,ssis,C#,Sql Server,Ssis,我的SSIS包中有一个C#脚本,它处理两个CSV文件并写入另一个CSV文件。来自新CSV文件的数据经过查找匹配,然后在SQL Server数据库中更新 CSV文件没有“rowguid”列,我的理解是SQL server自己生成rowguid值。因此,在OLEDB目标中的列映射中,没有任何内容映射到rowguid变量 在执行包时,ODB DashboardStats组件上出现以下错误,该组件将错误输出映射到数据库表: “无法将值NULL插入列'rowguid' 我看过类似的文章,但我不想让数据库中
在数据库表本身中,可以对rowguid设置一个uniqueidentifier约束,该约束自动生成数据并消除错误。示例如下:
ALTER TABLE [dbo].[TableName] ADD CONSTRAINT [MSmerge_df_rowguid_AA7400445B994489BB04D2C090DB574C] DEFAULT (NEWSEQUENTIALID()) FOR [rowguid]
GO
这取决于表的底层结构,但我的猜测是,该表的rowguid被设置为非键,或者rowguid可能只是不允许为null。我认为您的假设可能是错误的,它会自动生成它们。如果表在该列上为say
newid()设置了默认值
然后它应该自动生成它。但是,如果它没有生成,则您必须更改该表以获得它,或者在SSIS包中创建一个派生列以生成该列的guid。您可以运行sp\u help
查看该表上的约束。