首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 2008 中啟用和停用 IDENTITY_INSERT 以進行受控識別列插入?

如何在 SQL Server 2008 中啟用和停用 IDENTITY_INSERT 以進行受控識別列插入?

Barbara Streisand
發布: 2025-01-09 08:57:41
原創
814 人瀏覽過

How to Enable and Disable IDENTITY_INSERT in SQL Server 2008 for Controlled Identity Column Insertions?

SQL Server 2008:使用 IDENTITY_INSERT 管理識別列插入

在 SQL Server 資料庫中,會出現需要手動將值插入識別列的情況。 但是,IDENTITY_INSERT 預設情況下處於停用狀態,無法直接插入。

了解 IDENTITY_INSERT OFF 錯誤

嘗試將值插入到 IDENTITY_INSERT 設定為 OFF 的標記列中會導致此錯誤:

當 IDENTITY_INSERT 設定為 OFF 時,無法在表格「TableName」中插入識別列的明確值。

這是因為 SQL Server 會自動管理唯一識別值。 當 IDENTITY_INSERT 為 OFF 時,資料庫期望標識列為空,從而允許它分配下一個連續值。

使用 SQL Server Management Studio (SSMS) 啟用 IDENTITY_INSERT

要為 SSMS 中的特定表啟用 IDENTITY_INSERT

  1. 右鍵點選包含目標表的資料庫。
  2. 選擇「新查詢」。
  3. 執行下列 T-SQL 指令,將 <tablename> 替換為您的表格名稱:
<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
登入後複製
  1. 執行後,插入您的資料。 之後記得禁用IDENTITY_INSERT

直接使用T-SQL

您也可以直接在 T-SQL 管理 IDENTITY_INSERT

<code class="language-sql">SET IDENTITY_INSERT sometableWithIdentity ON;

INSERT INTO sometableWithIdentity (IdentityColumn, col2, col3, ...)
VALUES (AnIdentityValue, col2value, col3value, ...);

SET IDENTITY_INSERT sometableWithIdentity OFF;</code>
登入後複製

詳細錯誤訊息

錯誤訊息將指定受影響的表,幫助識別問題。例如:

<code>Cannot insert explicit value for identity column in table 'Baskets' when IDENTITY_INSERT is set to OFF.</code>
登入後複製

透過暫時啟用IDENTITY_INSERT,您可以控制識別列值。 之後始終禁用它以維護資料庫完整性和順序身份生成。

以上是如何在 SQL Server 2008 中啟用和停用 IDENTITY_INSERT 以進行受控識別列插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板