亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

用另外方法替代TRUNCATE TABLE

標簽:
SQL Server

某些情况之下,我们需要做清除表的记录。可以使用TRUNCATE函数实现,并让自动增长的主键ID重新开始。但是如果遇上表与其它表有关联,即是说主键是其它表的外键时,使用这个函数清除表记录,会接收到一条Error的信息:

Msg 4712, Level 16, State 1, Line 1
Cannot truncate table 'dbo.topic' because it is being referenced by a FOREIGN KEY constraint.

我们是否有其它替代方法可以使用呢?答案是肯定的。Insus.NET有写了一个存储过程,即是使用DELETE 和 DBCC一起来完成。

你可以参考下列存储过程:

View Code IF OBJECT_ID('[dbo].[InsusTRUNCATE]') IS NOT NULL
DROP PROCEDURE [dbo].[InsusTRUNCATE]
GO

CREATE PROCEDURE [dbo].[InsusTRUNCATE]
(
    @TableName NVARCHAR(128),
    @NewReseedValue INT    
)
AS
    EXECUTE ('DELETE FROM ' + @TableName)
    DBCC CHECKIDENT(@TableName, RESEED, @NewReseedValue)

 

 调用存储过程演示:

EXECUTE [dbo].[InsusTRUNCATE] 'dbo.topic',0 

 

 

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消