Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để tự động gửi lại sau khi sử dụng ID_insert?

Sử dụng thông tin trong liên kết này kết hợp với một hàm SQL nhận tối đa (RID) từ mỗi bảng mà bạn cần đặt lại. Ví dụ:nếu bạn muốn bắt đầu khóa chính của mình ở mức 25000, hãy sử dụng mã bên dưới (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Vì vậy, kết hợp lại, bạn nên kết thúc với một số suy nghĩ như thế này

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

Xin lỗi vì Pseudo-code, đã lâu tôi chưa viết một hàm SQL :)

CHỈNH SỬA:

Cảm ơn bạn đã nắm bắt được, đã thay đổi INTEGER thành INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Điều này sẽ cung cấp cho bạn danh sách tất cả các bảng người dùng trong cơ sở dữ liệu. Sử dụng truy vấn này làm 'vòng lặp' của bạn và điều đó sẽ cho phép đặt lại các hạt trên tất cả các bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 Câu hỏi giám sát máy chủ SQL cần hỏi khi đảm nhận vị trí DBA

  2. Sự kiện chờ SQL Server -1

  3. Lỗi thay đổi loại con trỏ trên kết quả hàm dữ liệu Perl OLE32 MSSQL

  4. Làm cách nào để hoán đổi giá trị cột trong sql server 2008?

  5. Cách giới hạn hàng trong bộ kết quả máy chủ SQL