Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara melakukan reseed secara otomatis setelah menggunakan identity_insert?

Gunakan informasi di tautan ini dalam kombinasi dengan fungsi SQL yang mendapatkan maks(RID) dari setiap tabel yang perlu Anda atur ulang. Misalnya, jika Anda ingin memulai seed kunci utama Anda pada 25000, gunakan kode di bawah ini (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Jadi dalam kombinasi, Anda harus berakhir dengan pemikiran seperti ini

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

Maaf untuk Pseudo-code, sudah lama sejak saya menulis fungsi SQL :)

EDIT:

Terima kasih atas tangkapannya, ubah INTEGER menjadi INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Ini akan memberi Anda daftar semua tabel pengguna dalam database. Gunakan kueri ini sebagai 'loop' Anda dan itu akan memungkinkan untuk menyetel ulang benih di semua tabel.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan ALTER TABLE bertentangan dengan batasan CHECK di SQL Server - Tutorial SQL Server / TSQL Bagian 89

  2. Cara Menemukan Nama Batasan di SQL Server

  3. sql menggunakan pernyataan dengan variabel

  4. Bagaimana cara memperbaiki kesalahan 'Penyedia Pipa Bernama, kesalahan 40 - Tidak dapat membuka koneksi ke' SQL Server'?

  5. SQL - Konversi tipe data varchar ke tipe data datetime menghasilkan nilai di luar rentang