解決 SQL Server 中的「無法為識別列插入明確值」錯誤
在 SQL Server 中遇到錯誤「當 IDENTITY_INSERT 設定為 OFF 時,無法在表格 'table' 中為識別列插入明確值」?當嘗試手動將值插入指定為自動遞增的欄位時,通常會發生這種情況。識別列會自動為每個新行產生順序值,並且預設情況下,IDENTITY_INSERT
設定為 OFF
,防止直接值插入。
解決此問題的方法如下:
方法一:暫時啟用IDENTITY_INSERT
此方法可讓您將特定值插入識別列中,但只是暫時的。
<code class="language-sql">SET IDENTITY_INSERT Table1 ON INSERT INTO Table1 (OperationID, OpDescription, FilterID) --Column list is mandatory VALUES (20, 'Hierarchy Update', 1); SET IDENTITY_INSERT Table1 OFF</code>
方法二:解除身分約束
如果您不需要此列自動遞增,請刪除身分約束。 注意:這將永久停用自動遞增。
<code class="language-sql">ALTER TABLE Table1 DROP CONSTRAINT IDENTITY_Constraint;</code>
進行此變更後,您可以將值直接插入列中。但是,請記住,您需要為每個後續行插入手動指定值。 選擇此方法之前需要仔細考慮。
以上是如何修復「無法在表中插入識別列的明確值」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!