我在SQL中创建了一个包含3列的表。 ID之一(带有标识规范)和另外两列。我正在通过c#应用程序将记录保存在2列中,因为ID列会自动增加。 所以直到第160个记录都很好,之后ID增量达到了1172,然后从那里开始增量,如1173,1174等等。
我不知道在创建表和ID列时是否做错了。无法理解。有人可以指导。我正在附上截图。
编辑:我使用查询修复了它。
DBCC CHECKIDENT (mytable, RESEED, 160)
现在ID列返回到161并递增+1。一切都好。
答案 0 :(得分:0)
通常,如果在已回滚的事务中完成INSERT,您将看到此信息。这是您的方案的重复:
CREATE TABLE #Test (
Id INT IDENTITY(1, 1) PRIMARY KEY,
Txt NVARCHAR(100)
);
INSERT INTO #Test (Txt) VALUES ('A'), ('B');
BEGIN TRAN mytran
INSERT INTO #Test (Txt) VALUES ('C'), ('D');
ROLLBACK TRAN mytran
INSERT INTO #Test (Txt) VALUES ('E'), ('F');
SELECT * FROM #Test;
DROP TABLE #Test;
这将输出:
Id Txt
1 A
2 B
5 E
6 F
所以用' C'和' D'遗失,以及Id
和2
之间的5
字段中的差距。