SQL数据库触发器,当表1被修改一个字段,表2就跟着修改一个字段。
现在数据库里面有两张表,一张是C_Head,另一张是C_DetailC_Detail表里面有两个字段ISUSE(使用状态),INCODE(单号),且表里面ISUSE字段只...
现在数据库里面有两张表,一张是C_Head,另一张是C_Detail
C_Detail 表里面有两个字段 ISUSE(使用状态),INCODE (单号),且表里面ISUSE字段只有两种状态,Y和N 。(初始值是N)
C_Head 表里面也有两个字段 CANUSE(可使用),INCODE(单号)
现在需求是,想写一个触发器,当C_Detail表里面其中一行数据ISUSE字段被修改成Y的时候,事件就被触发,将INCODE捕获,根据INCODE修改C_Head表里面的CANUSE的数量。(select @CANUSE=sum(1) from C_Detail where INCODE=@INCODE and ISUSE='N' ; update C_Head set CANUSE=@CANUSE where INCODE=@INCODE)
求大神解决 !!高悬赏!! 展开
C_Detail 表里面有两个字段 ISUSE(使用状态),INCODE (单号),且表里面ISUSE字段只有两种状态,Y和N 。(初始值是N)
C_Head 表里面也有两个字段 CANUSE(可使用),INCODE(单号)
现在需求是,想写一个触发器,当C_Detail表里面其中一行数据ISUSE字段被修改成Y的时候,事件就被触发,将INCODE捕获,根据INCODE修改C_Head表里面的CANUSE的数量。(select @CANUSE=sum(1) from C_Detail where INCODE=@INCODE and ISUSE='N' ; update C_Head set CANUSE=@CANUSE where INCODE=@INCODE)
求大神解决 !!高悬赏!! 展开
展开全部
ALTER TRIGGER [dbo].[T_Update]
ON [dbo].[C_Detail]
FOR UPDATE
AS
DECLARE @INCODE INT;
DECLARE @SUM INT;
SELECT @INCODE = INCODE FROM deleted;
IF (exists (SELECT * FROM C_Head WHERE INCODE = @INCODE))
BEGIN
SELECT @SUM=SUM(1) FROM C_Detail WHERE INCODE = @INCODE and ISUSE='N';
UPDATE C_Head SETCANUSER=@SUMWHERE INCODE = @INCODE;
END
ON [dbo].[C_Detail]
FOR UPDATE
AS
DECLARE @INCODE INT;
DECLARE @SUM INT;
SELECT @INCODE = INCODE FROM deleted;
IF (exists (SELECT * FROM C_Head WHERE INCODE = @INCODE))
BEGIN
SELECT @SUM=SUM(1) FROM C_Detail WHERE INCODE = @INCODE and ISUSE='N';
UPDATE C_Head SETCANUSER=@SUMWHERE INCODE = @INCODE;
END
展开全部
CREATE OR REPLACE TRIGGER TR_UP_HEAD
BEFORE UPDATE ON C_DETAIL
DECLARE
SQL_TXT ORA_NAME_LIST_T;
T_INCODE VARCHAR2(10);
BEGIN
N:=ORA_SQL_TXT(SQL_TXT)
FOR I IN 1..N LOOP
UPDATE C_DETAIL SET ISUSE='Y'
END LOOP
BEFORE UPDATE ON C_DETAIL
DECLARE
SQL_TXT ORA_NAME_LIST_T;
T_INCODE VARCHAR2(10);
BEGIN
N:=ORA_SQL_TXT(SQL_TXT)
FOR I IN 1..N LOOP
UPDATE C_DETAIL SET ISUSE='Y'
END LOOP
追问
DECLARE
SQL_TXT ORA_NAME_LIST_T; 这里不懂:ORA_NAME_LIST_T这个不是类型。
后面LOOP里也没看懂,我是想当那个状态被修改为Y的时候才执行触发器,修改C_Head表里面的数据。且是要按照INCODE去修改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询