SQL Server 2008 中的 IDENTITY_INSERT 詳解
在 SQL Server 中,IDENTITY_INSERT
是一項關鍵設置,決定資料庫是否接受識別列的明確值。當設定為 OFF 時,資料庫會在 INSERT 作業期間自動為這些資料列產生值。但在某些情況下,可能需要將 IDENTITY_INSERT
設定為 ON 以手動插入值。
為何停用再啟用 IDENTITY_INSERT?
停用 IDENTITY_INSERT
的一個常見原因是強制資料完整性。透過阻止顯式值插入,資料庫確保產生連續的 ID 值,從而降低重複條目的風險。但是,對於某些特定任務(例如從外部來源匯入資料),可能需要手動指派識別值。
使用 SQL 查詢啟用 IDENTITY_INSERT
要在 SQL Server 2008 中啟用 IDENTITY_INSERT
,請執行下列查詢:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>
將 "Database" 和 "dbo" 替換為對應的資料庫和架構名稱。執行此查詢後,您可以繼續進行手動插入操作。
在程式碼中處理已啟用的 IDENTITY_INSERT
即使使用查詢啟用了 IDENTITY_INSERT
,如果在 INSERT 操作期間仍然收到錯誤,則可能是由於應用程式程式碼導致的。確保您的程式碼沒有嘗試明確設定標識列。當 IDENTITY_INSERT
設定為 OFF 時,無論程式碼中指定了哪些明確值,資料庫都會自動分配值。
請記住,完成手動插入後,請務必將 IDENTITY_INSERT
還原為 OFF 以恢復資料完整性。使用以下查詢停用它:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets OFF</code>
以上是何時以及如何使用 SQL Server 的 IDENTITY_INSERT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!