我正在绑定 wright 程序,该程序将检查我的历史表并重写其中的记录。它必须替换本月插入的记录,并且仅当它们在新插入中重复时。
现在我有这个程序,它只是复制了状态 id 为 1 和 2 的客户端,但如果我再次调用它,它将重复记录。
create procedure sp_MonthlyInsertInHistory
as
INSERT History( ClientId, CategCode)
SELECT ClientId, CategCode
FROM dbo.Clients
where StatusID in (1,2)
go
历史表看起来像
Historyid(int) auto increment, ClienID (int), CategCode (varchar), RecordDate (date)GETDATE();
1, 11, SR, 2013-02-01
2, 12, CH, 2013-02-01
3, 11, SR, 2013-03-01
4, 12, CH, 2013-03-01
如果我将运行此过程,它应该删除记录11, 1, 2013-03-01
并将其替换为11, 1, 2013-03-18
当前日期,如果 clientid 12 现在不在 statusid 1 或 2 中但它已经在表中,它应该留在那里。但是,如果记录不是在本月创建或不是在插入语句中的选择中创建,则不应删除记录。(例如新客户)。我希望你能理解我的解释。任何帮助表示赞赏,因为我只是不知道从什么开始。