Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak ponownie zaszczepić tożsamość tabeli w SQL Server 2008 i bezpiecznie to wszystko cofnąć?

Polecenie resetowania właściwości tożsamości to

DBCC CHECKIDENT (tablename, RESEED, new_reseed_value)

Jeśli chcesz ustawić tożsamość kolumny na 12345, uruchom to

DBCC CHECKIDENT (beer, RESEED, 12345)

Jeśli chcesz usunąć wiersze testowe i przywrócić wartość do poprzedniej wartości, wykonaj następujące czynności.

DELETE
FROM beer
WHERE beer_id >= 12345 ;

DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;

DBCC CHECKIDENT (beer, RESEED, @NewSeed)

Oto demonstracja twojego scenariusza. Zauważ, że kolumna beer_id jest tworzona z IDENTITY (1, 1) właściwość, która ustawia tożsamość na 1 z przyrostem o 1.

CREATE TABLE beer
    (        
    beer_id NUMERIC(10) IDENTITY (1,1) NOT NULL,
    mnemonic NVARCHAR(8)
    );

GO

INSERT INTO beer(mnemonic) VALUES ('Beer 1')
INSERT INTO beer(mnemonic) VALUES ('Beer 2')

SELECT *
FROM beer ;

DBCC CHECKIDENT (beer, RESEED, 12345)
GO

INSERT INTO beer(mnemonic) VALUES ('Beer 3')
INSERT INTO beer(mnemonic) VALUES ('Beer 4')

SELECT *
FROM beer ;

DELETE
FROM beer
WHERE beer_id >= 12345 ;

DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;

DBCC CHECKIDENT (beer, RESEED, @NewSeed)
GO

INSERT INTO beer(mnemonic) VALUES ('Beer 5')
INSERT INTO beer(mnemonic) VALUES ('Beer 6')

SELECT *
FROM beer ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj wyrażenie CASE w SQL na kolumnę pochodną w SSIS

  2. Szkodliwe, wszechobecne mity dotyczące wydajności SQL Server

  3. Czy mogę utworzyć widok na moim serwerze bazy danych z innego serwera bazy danych?

  4. Dlaczego transakcja zagnieżdżona jest zatwierdzana, nawet jeśli TransactionScope.Complete() nigdy nie jest wywoływana?

  5. EntityFramework ConnectionString utf8