SQL Server 2008 身分插入故障排除:完整指南
在 SQL Server 2008 中將資料插入具有識別列的表中有時會導致與停用識別插入相關的錯誤。本指南解釋了問題並提供了解決方案。
了解「IDENTITY_INSERT is OFF」錯誤
IDENTITY_INSERT
設定決定您是否可以手動為識別列指派值。 當它處於關閉狀態(預設值)時,資料庫會自動產生這些值。 在 IDENTITY_INSERT
關閉時嘗試插入特定值會導致錯誤。
啟用身分插入:正確方法
要在 SQL Server 2008 中啟用身分插入,請使用此命令,將 Database.dbo.Baskets
替換為您的資料庫和表格名稱:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>
為什麼查詢仍可能失敗
即使在執行上述命令後,您也可能會遇到錯誤。這是因為更改可能不適用於當前事務。為了確保其生效,請將插入語句包裝在事務區塊中:
<code class="language-sql">BEGIN TRANSACTION; SET IDENTITY_INSERT Database.dbo.Baskets ON; -- Your INSERT statement here COMMIT TRANSACTION;</code>
使用 SQL Server Management Studio (SSMS)
或者,您可以透過 SSMS 啟用身分插入。右鍵單擊您的表格,選擇“設計”,轉到“身份規範”選項卡,然後選取“允許身份插入”。
總結
成功將資料插入身分列需要在交易中啟用IDENTITY_INSERT
。 使用正確的語法並瞭解交易上下文是解決這個常見 SQL Server 2008 問題的關鍵。
以上是為什麼我的 SQL Server 2008 身分插入在啟用後仍失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!