解決「無法為識別列插入明確值」錯誤
當您嘗試手動將值插入識別列(資料庫自動指派唯一順序值的欄位)時,您將遇到錯誤「當IDENTITY_INSERT 為「無法在表'table' 中插入識別列的明確值”設定為關閉。” 發生這種情況是因為標識列旨在自我管理其值。
解:暫時啟用 IDENTITY_INSERT
解決方案是暫時啟用特定表的IDENTITY_INSERT
。 此設定會覆蓋自動值產生。 流程如下:
IDENTITY_INSERT
: 使用下列 SQL 指令,將 TableName
替換為您的表格名稱:<code class="language-sql">SET IDENTITY_INSERT TableName ON</code>
INSERT
語句。 例如:<code class="language-sql">INSERT INTO TableName (IdentityColumnName, Column2, Column3) VALUES (100, 'Some Value', 'Another Value');</code>
IDENTITY_INSERT
: 至關重要的是,插入後,停用 IDENTITY_INSERT
以恢復自動識別列行為:<code class="language-sql">SET IDENTITY_INSERT TableName OFF</code>
範例:
考慮一個有識別列Orders
的表OrderID
。 若要插入具有特定 OrderID
的記錄,您可以執行以下操作:
<code class="language-sql">SET IDENTITY_INSERT Orders ON; INSERT INTO Orders (OrderID, CustomerID, OrderDate) VALUES (12345, 1, '2024-03-08'); SET IDENTITY_INSERT Orders OFF;</code>
這允許您將值 12345
插入到 OrderID
列中。 請記住在插入後始終停用 IDENTITY_INSERT
以保持身份列的完整性。
以上是為什麼無法將值插入到識別列中,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!