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

Các bản ghi được chèn luôn nhận được các giá trị nhận dạng liền kề

Tôi không đồng ý với câu trả lời được chấp nhận. Điều này có thể dễ dàng được kiểm tra và bác bỏ bằng cách chạy như sau.

Thiết lập

USE tempdb

CREATE TABLE Foo
(
    ID int IDENTITY(1,1),
    Data nvarchar(max)
)

Kết nối 1

USE tempdb

SET NOCOUNT ON
WHILE NOT EXISTS(SELECT * FROM master..sysprocesses WHERE context_info = CAST('stop' AS VARBINARY(128) ))
 BEGIN
 INSERT INTO Foo (Data)
 VALUES ('blah')
 END

Kết nối 2

USE tempdb

SET NOCOUNT ON
SET CONTEXT_INFO 0x

DECLARE @Output TABLE(ID INT)

WHILE 1 = 1
BEGIN
    /*Clear out table variable from previous loop*/
    DELETE FROM  @Output

    /*Insert 1000 records*/
    INSERT INTO Foo (Data)
    OUTPUT inserted.ID INTO @Output
    SELECT TOP 1000 NEWID()
    FROM sys.all_columns

    IF EXISTS(SELECT * FROM @Output HAVING MAX(ID) - MIN(ID) <> 999 )
        BEGIN
        /*Set Context Info so other connection inserting 
          a single record in a loop terminates itself*/
        DECLARE @stop VARBINARY(128) 
        SET @stop = CAST('stop' AS VARBINARY(128))
        SET CONTEXT_INFO @stop

        /*Return results for inspection*/
        SELECT ID, DENSE_RANK() OVER (ORDER BY Grp) AS ContigSection
        FROM 
          (SELECT ID, ID - ROW_NUMBER() OVER (ORDER BY [ID]) AS Grp
           FROM @Output) O
        ORDER BY ID

        RETURN
        END
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo Tập lệnh DDL (Tạo) từ SQL Server Management Studio (SSMS) - Hướng dẫn sử dụng SQL Server / TSQL Phần 17

  2. Thay thế lần xuất hiện đầu tiên của chuỗi con trong một chuỗi trong SQL

  3. Cách hiệu quả để xóa các hàng trùng lặp khỏi hàng triệu bản ghi

  4. Làm thế nào để thiết lập SQL Server / IIS 7.0 để cho phép trang web ASP.NET MVC truy cập vào cơ sở dữ liệu?

  5. cách chuyển tham số bằng dấu ngoặc kép