Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Дублирани стойности в колона за самоличност

Тествах какво казва Giogri и ако активирате спецификацията за идентичност (поне на 2008, вероятно и други версии), след като таблицата има редове, DB ще започне номерирането с най-високата стойност на цяло число. Ако имате един ред със 100 като стойност на колоната, след това активирайте Идентичност, следващото вмъкване ще бъде 101. Дори и с Identity Seed, указано като 1. Не беше това, което очаквах, но това се случи.

В допълнение към SET IDENTITY INSERT , има и команда за повторно зареждане. DBCC CHECKIDENT команда, която ще нулира вашите стойности за идентичност обратно към зададените от вас.

Като се има предвид, че активирането на спецификацията за самоличност всъщност започва от най-високото цяло число в колоната, някой вероятно е използвал SET IDENTITY_INSERT или направи DBCC CHECKIDENT .

Най-бързият начин за повторна последователност, както казва Андомар, е да премахнете/пресъздадете колоната по този начин

ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY

SET IDENTITY_INSERT документи:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT документи:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дизайн на схема за фактури и плащания - по-добър модел от връзката M:M?

  2. Как да проверите вашата версия на SQL Server

  3. Защо sql сървърът съхранява знаци за въпросителен знак вместо японски знаци в полетата на NVarchar?

  4. Внедряване на релация едно към нула или едно в SQL Server

  5. Групирана конкатенация в SQL Server