开发者

Cannot insert duplicate key row in object 'dbo.TitleClient' with unique index 'XAK1TitleClient'

开发者 https://www.devze.com 2023-02-18 23:41 出处:网络
Ever since I cleaned the data on the SQL Database I\'ve been getting this issue, whereas on the unclean database the issue does not happen. When I run my stored procedure (huge procedure) it returns:

Ever since I cleaned the data on the SQL Database I've been getting this issue, whereas on the unclean database the issue does not happen. When I run my stored procedure (huge procedure) it returns:

General SQL error. Cannot insert duplicate key row in object 'dbo.TitleClient' with unique index 'XAK1TitleClient'. Cannot insert the value NULL into column 'id_title', table 'Database.dbo.TitleCom'; column does not allow null, insert fails.

Is it possible that I deleted data from开发者_运维知识库 a table that causes this? Or is that impossible?


Does dbo.TitleClient have an identity column? You might need to run

DBCC CHECKIDENT('dbo.TitleClient')

I'm guessing that the first message

Cannot insert duplicate key row in object 'dbo.TitleClient' with unique index 'XAK1TitleClient'

is because the seed value is out of synch with the existing table values and the second error message

Cannot insert the value NULL into column 'id_title', table 'Database.dbo.TitleCom' column does not allow null, insert fails.

Comes from a failed attempt at inserting the result of scope_identity from the first statement.


How cleanly did you "clean" the data?

  • If some tables still have data, that might be causing a problem.
  • Especially if you have triggers resulting in further inserts.

For you to investigate further.

  • Take the body of your stored proc, and run it bit-by-bit.
  • Eventually, you'll get to the actual statement producing the error.
  • Of course if you aren't inserting into dbo.TitleClient at this point, then it's certainly a trigger causing problems.
  • Either way: Now you can easily check the data inserted earlier in your proc to figure out the root cause.
0

精彩评论

暂无评论...
验证码 换一张
取 消