2017-04-21 112 views
2

我们的程序连接到数据库,并且当您登录到程序时,它会抛出此错误:“语法错误或访问冲突”以及“无法将值NULL插入到列'ID',表'CADDB.dbo.AuditTrail';列不允许为NULL。INSERT失败“登录程序时出现语法错误或访问冲突

我试过Microsoft的Fix,在ODBC连接中使用ANSI Nulls,Padding和Warnings,但它仍然发生。

有人能指点我在哪里看?我相信这是数据库中的损坏数据......但不是100%确定。如果您需要我,我会附上记录该消息的错误。

+0

要找出问题出在哪里,您必须手动调试并重新创建错误。假设你可以访问'CADDB.dbo.AuditTrail'表,然后手动从SQL Management Studio中写入一条INSERT语句,如果成功,那么问题出现在没有捕获所有必需输入字段的UI上。如果数据库插入本身失败,那么你必须弄清楚如何修复该部分。 – Ram

+0

正确 - 我们的开发人员为这个程序提供了一个调试器(刚发现),但问题是一个损坏的数据库。我们得到了最近的备份,并且没有出错。谢谢! – JAYDIZZ

回答

0

你需要从CADDB.dbo.AuditTrailallow nulls确保列,请检查您的表架构为,或者你可以尝试插入入列ISNULL(value,'NULL'),这是串空没有实际NULL

ANSI_NULL查询选项只有在进行值比较时才会生效。当设置为ON时为IS NULL/IS NOT NULL,或者当设置为OFF时使用=/!=/<>

0

使用ISNULL()函数。示例ISNULL(column Name, '')

我不确定是否在代码中使用T-SQL脚本访问表,或者可以更改列以允许空值。

1

该异常显示了您的应用尝试将NULL值插入到列ID(不允许为NULL的列)中的根本原因。如果这是由您的应用程序的错误引起的,并且您还想要将一个NULL值插入到ID列中。然后,您可以更改表以允许列ID为NULL或使用表示NULL的特殊值(不推荐)插入。

否则,它更可能是您的应用程序的问题。

0

谢谢大家!问题是数据库已损坏。我得到了相同的数据库的工作备份,它没有任何错误地正常工作。

相关问题