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

Как автоматично да се презареди след използване на identity_insert?

Използвайте информацията в тази връзка в комбинация с SQL функция, която получава max(RID) от всяка таблица, която трябва да нулирате. Например, ако искате да започнете началния си първичен ключ от 25 000, използвайте кода по-долу (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Така че в комбинация трябва да получите нещо като това

DECLARE @maxVal INT
SELECT @maxVal = ISNULL(max(ID),0)+1 from mytable
DBCC CHECKIDENT('mytable', RESEED, @maxVal)

Съжалявам за псевдокода, мина известно време, откакто написах SQL функция :)

РЕДАКТИРАНЕ:

Благодаря за уловката, промених INTEGER на INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Това ще ви даде списък на всички потребителски таблици в базата данни. Използвайте тази заявка като своя „цикъл“ и това трябва да позволи нулиране на началните стойности на всички маси.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не мога да вляза в SQL Server с удостоверяване на Windows

  2. Какво е логически оператор И в SQL Server - SQL Server / TSQL урок, част 120

  3. Стартирайте Python Script от MSSQL

  4. Как да намеря грешката при грешка при конвертиране на varchar в int в SQL?

  5. Какво наистина прави методът Statement.setFetchSize(nSize) в JDBC драйвер на SQL Server?