2017-04-21 42 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

謝謝大家!問題是數據庫已損壞。我得到了相同的數據庫的工作備份,它沒有任何錯誤地正常工作。

相關問題