泥泞的我 2014-09-18 03:07 采纳率: 0%
浏览 1990

修改触发器 将删除后再插入 改成修改 大神求救

USE [IBR_App_HR]
GO
/****** Object: Trigger [dbo].[Trigger_SA_Employee] Script Date: 09/18/2014 10:47:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER trigger [dbo].[Trigger_SA_Employee]
on [dbo].[HR_HM_Employee]
for insert,update,delete
as
if exists
(select A.Id,A.Name,A.CompanyCode,A.Code,A.EntryTime,A.DimissionTime from inserted A,deleted b where A.Id = B.Id)
begin
if exists (select dbo.HR_SA_Employee.Id from dbo.HR_SA_Employee,inserted where dbo.HR_SA_Employee.Id = inserted.Id)
delete dbo.HR_SA_Employee from dbo.HR_SA_Employee,inserted where dbo.HR_SA_Employee.Id = inserted.Id;
insert into dbo.HR_SA_Employee (Id,Name,CompanyCode,Code,EntryTime,DimissionTime,Remark,Status)

(select Id, Name,CompanyCode,Code,EntryTime,DimissionTime as DimissionTime,'Modify',Status from inserted)
end

else
begin
if exists (select Id from inserted)
begin
insert into dbo.HR_SA_Employee (Id,Name,CompanyCode,Code,EntryTime,DimissionTime,Remark,Status)

(select Id, Name,CompanyCode,Code,EntryTime,DimissionTime ,'Insert',Status from inserted);
end
else
begin
update dbo.HR_SA_Employee set Remark = 'Delete' from dbo.HR_SA_Employee,deleted where dbo.HR_SA_Employee.id = deleted.id;
end
end

有两个表 HR_HM_Employee 这个是员工表 HR_SA_Employee 这个是薪资表 我需要员工表里面的Id,Name,CompanyCode,Code,EntryTime,DimissionTime,Remark,Status 这些字段修改后 HR_SA_Employee 这个薪资表里面的这些字段也修改 现在的触发器是 删掉薪资表里面的数据 再插入一条 我现在是要修改 不是删除后再插入 大神求救啊

  • 写回答

1条回答 默认 最新

  • 旅途中的独行者 2014-09-19 04:59
    关注

    你可以把触发器改成更新触发器啊,当员工表中的信息修改时就更新薪资表啊

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配