公告版位

How to truncate a table with foreign Key in SQL Server.

當想要清空資料表時,我們可以用TRUNCATE語句來達到,但是當該資料表有使用外部索引鍵時,會出現如下錯誤:

無法截斷資料表'Table',因為該資料表正由FOREIGN KEY 條件約束參考
Cannot truncate table 'Table' because it is being referenced by a FOREIGN KEY constraint

因為外部索引鍵的關係造成無法執行TRUNCATE語句,當然我們可以直接用DELETE語句來清空資料,不過資料表中如果具有自動增值(Auto increase)的識別(Identity)欄位,編號並不會重新計算。這時候可以用兩種方法來達成目的:

第一種:

先刪除FK的限制後,使用TRUNCATE語句,最後再將FK重新建立回來。

第二種:

當資料表很多又可能有很多FK的時候,使用第一種方式顯然是相當麻煩,這時候可以使用下面的語句達到目的

USE [DbName]
GO

DELETE [Table];
DBCC CHECKIDENT('Table', RESEED, 0);

用DELETE語句刪除資料之後,再將編號重置為0即可

文章標籤
創作者介紹

小殘的程式光廊

emn178 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • 路過
  • 謝謝!!幫了我一個大忙
  • 不客氣

    emn178 於 2013/11/06 22:26 回覆

找更多相關文章與討論