首页 > 解决方案 > 将已删除的行重新插入到同一个表 SQL Server 2005

问题描述

在搜索了很多页面之后,我仍然找不到关于在同一个表中重新插入已删除行的答案——而不是另一个表。

我有一个名为时间表的表,其主键由 3 列组成Schoolcode, Year, Term

由于某种原因,我需要将已删除的行插入到同一个表中。

我得到错误

违反 PRIMARY KEY 约束

使用以下触发器

ALTER TRIGGER [dbo].[AFTER_delete_]
ON [dbo].timetable 
AFTER delete
AS
BEGIN
    IF EXISTS (SELECT * FROM deleted)
    BEGIN
        INSERT INTO timetable
            SELECT * 
            FROM deleted A 
            WHERE NOT EXISTS (SELECT 1  FROM timetable B      
                              WHERE B.Schoolcode = A.Schoolcode  
                                AND B.Year = A.Year   
                                AND B.Term = A.Term);
    END
END 

标签: sql-servertriggersinsert

解决方案


感谢任何方式。我测试了下面的代码并且确实有效。

    ALTER TRIGGER [dbo].[Instead_OfDelSert_Status]
    ON  [dbo].[Status]
    INSTEAD OF delete,insert
    AS
    BEGIN
    PRINT 'You must disable or delete Trigger  Instead_OfDelSert_Status  to insert or 
    delete rows!'
    END 

推荐阅读