标识列在删除时不遵循序列号id

时间:2014-02-21 07:48:55

标签: sql-server-2012

Create table DocumentMaster
(
DocID int Identity(1,1) not null Primary key,
DocName varchar(30) UNIQUE not null
)

当我在其中插入记录时,一切正常但如果我删除记录或者当我尝试在DocName列中插入重复记录时出现错误“一个DocId不遵循序列号模式”

DocID   DocName
1        Doc1
3        Doc2

(预期DocID 2,但尝试在DocName中插入重复值时为3)

请帮帮忙

由于

1 个答案:

答案 0 :(得分:0)

这是因为主键定义。 主键的一个重要规则是它保持整个数据库内部的独特性。 身份规范试图提出这个规则。 例如,如果删除在其他表中引用的标识行,则应保持数据库一致性。 因此,如果删除了一行内部标识或插入错误,则该行的工作量不应该在db内。所以选择了下一个。