Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将值NULL插入列';rowguid';_C#_Sql Server_Ssis - Fatal编程技术网

C# 无法将值NULL插入列';rowguid';

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' 我看过类似的文章,但我不想让数据库中

我的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新手:()

以下是一些可供参考的屏幕截图:


在数据库表本身中,可以对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
查看该表上的约束。