⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project表触发器.txt

📁 ASP程序实现的科技期刊系统
💻 TXT
字号:
/*
功能说明:用于修改“进度状况”的同时修改“修改标志”
触发器类型:AFTER UPDATE
涉及数据对象:XT_TD_Project
制作人:王海
制做日期:2002-9-12
修改人:刘晓颖
修改说明:增加进度状况为接收退回时,修改标志为“Y”
修改日期:2002-10-31
修改人:刘晓颖
修改说明:项目接收后,自动添加到立项表中
修改日期:2003-1-15
*/
CREATE  TRIGGER tr_XT_TD_Project_U ON dbo.XT_TD_Project 
AFTER UPDATE
AS
BEGIN TRANSACTION tr_XT_TD_Project_U
if update(进度状况) or update(退回标志) 
begin
--接收后、退回再提交后进行的操作
IF ((SELECT 进度状况 FROM INSERTED)='未审' 
AND (SELECT 退回标志 FROM INSERTED) IS NULL)
OR ((SELECT 进度状况 FROM INSERTED)='未审' 
AND (SELECT 退回标志 FROM INSERTED)='20')
BEGIN
  UPDATE XT_TD_Project SET 修改标志='N' 
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  UPDATE XT_TD_Project SET 进度状态编码='1'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  --将接收的项目写入立项表
--  IF (SELECT 项目编码 FROM XT_TD_PROJECTLX
--  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED))=''
--  BEGIN
  INSERT INTO XT_TD_projectLX(项目编码,项目名称,主持单位,项目类别,主要内容,预期成果,无偿,贴息,有偿) 
  SELECT 项目编码,项目名称,主持单位,项目类别,主要内容,预期成果,无偿,贴息,有偿 
  FROM XT_VD_projectLX 
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  --将接收的项目的协作单位写入协作单位立项表
  INSERT INTO XT_TD_projectCompanyLX(项目编码,单位名称,单位序号)
  SELECT 项目编码,单位名称,单位序号 FROM XT_TD_projectCompany
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  END
--END
--退回后再提交,更新进度状态
IF  (SELECT 退回标志 FROM INSERTED)='20'
BEGIN 
  IF (SELECT 退回进度 FROM INSERTED)='接收'
  BEGIN
      UPDATE XT_TD_Project SET 进度状况='未接收' 
      WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  END
  IF (SELECT 退回进度 FROM INSERTED)='初审'
  BEGIN
      UPDATE XT_TD_Project SET 进度状况='未审' 
      WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  END
  IF (SELECT 退回进度 FROM INSERTED)='立项'
  BEGIN
      UPDATE XT_TD_Project SET 进度状况='未立项' 
      WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  END
END

--退回到申报状态时
IF (SELECT 退回标志 FROM INSERTED)='10' 
BEGIN
  UPDATE XT_TD_Project SET 修改标志='Y' 
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  UPDATE XT_TD_Project SET 进度状态编码='0'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  DELETE FROM XT_TD_projectLX	--退回时从立项表中删除
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
  DELETE FROM XT_TD_projectCompanyLX 
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
END

IF (SELECT 项目进度 FROM INSERTED)='申报'
  UPDATE XT_TD_Project SET 项目进度编码='0'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 项目进度 FROM INSERTED)='初审'
  UPDATE XT_TD_Project SET 项目进度编码='1'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 项目进度 FROM INSERTED)='立项'
  UPDATE XT_TD_Project SET 项目进度编码='2'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 项目进度 FROM INSERTED)='合同'
  UPDATE XT_TD_Project SET 项目进度编码='3'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 项目进度 FROM INSERTED)='结题'
  UPDATE XT_TD_Project SET 项目进度编码='4'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)

IF (SELECT 进度状况 FROM INSERTED)='不合格'
  UPDATE XT_TD_Project SET 进度状态编码='0'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 进度状况 FROM INSERTED)='合格'
  UPDATE XT_TD_Project SET 进度状态编码='1'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 进度状况 FROM INSERTED)='未审核'
  UPDATE XT_TD_Project SET 进度状态编码='0'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
IF (SELECT 进度状况 FROM INSERTED)='审核'
  UPDATE XT_TD_Project SET 进度状态编码='1'
  WHERE 项目编码=(SELECT 项目编码 FROM INSERTED)
end 
COMMIT TRANSACTION tr_XT_TD_Project_U
IF @@ERROR<>0 
  ROLLBACK TRANSACTION tr_XT_TD_Project_U


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -