📄 project表触发器.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 + -