SQL Server 插入數據時自增長列如何指定數值


SQL Server 表在導入數據時,有時需要將自增長列指定數值,來保證導入前后的數據完全一致,如何實現?

SQL Server 提供了方法:

SET IDENTITY_INSERT,允許將顯式值插入表的標識列中

參考文檔:SET IDENTITY_INSERT | Miscosoft Docs

 

語法:

SET IDENTITY_INSERT [ database_name . [ schema_name] . ] table { ON | OFF }

用法:

-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT dbo.Tool ON
GO

-- Try to insert an explicit ID value of 3.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO

-- SET IDENTITY_INSERT to OFF.
SET IDENTITY_INSERT dbo.Tool OFF
GO

 

 注意事項:

  • INSERT INTO語句必須輸入列名,否則執行時會報錯“僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表‘Tool’中的標識列指定顯式值”
  • 一個會話中只有一個表的 IDENTITY_INSERT 屬性可以設置為 ON,在設置為ON、插入數據后,還需要設置該表 IDENTITY_INSERT為 OFF。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM