sCnd = "INSERT INTO .dbo.Table(Col1, Col2, Col3) Values (1,2,3);
using (DbCommand tempCommand2 = CommandFactory.CreateCommand(db))
{
tempCommand2.CommandText = sCmd;
tempCommand2.ExecuteNonQuery();
}
表还有一个不允许null的Col4。
错误:无法将值NULL插入列Col4
当我在Management Studio中执行sCmd时,一切正常。
为什么我会得到例外?
答案 0 :(得分:2)
表还有一个不允许null的Col4。
有你的答案。如果Management Studio仍然有效,它可能会插入默认值吗?
答案 1 :(得分:2)
您收到异常是因为您没有为Col4
列插入一个值,该值不允许nulls
,我只能假设没有默认值。
但似乎你提出了错误的问题;你不是要问,为什么查询在SSMS中运行?
我怀疑的答案问题会隐藏在实际语法的某处,而您选择不包含该语法。
答案 2 :(得分:1)
如果您没有为列NULL
指定值,除非有constraint
另有说明。
由于Col4
不允许NULL
,并且看起来它没有default
值constraint
,这就是您收到错误的原因。
您还没有显示您在SSMS中执行的SQL,但我猜,不同的数据库(生产/开发),不同的表?