--trycreate trigger tr on B
for insert
as
update A set point=point+B.tpoint
from inserted B
where A.name=B.name

解决方案 »

  1.   

    A表中name等于B表name的point加上tpoint的值   --这句话应该怎样理解
      

  2.   

    -- 两个表A 字段id,name,point.表 B字段 id,name,sub,tpoint
    -- 现在想在B表插入一条记录的时候让A表中name等于B表name的point加上tpoint的值.
    CREATE TABLE A(ID INT,NAME NCHAR(10),POINT INT)CREATE TABLE B(ID INT, NAME NCHAR(10),TPOINT INT)
    GOCREATE TRIGGER TI_TEST ON B FOR INSERT
    AS
    BEGIN
        INSERT A(ID,NAME,POINT) SELECT ID,NAME,TPOINT FROM INSERTED
    END
    GO
    CREATE TRIGGER TU_TEST ON B FOR UPDATE
    AS
    BEGIN
        UPDATE A SET POINT=POINT-D.TPOINT+I.TPOINT FROM A,INSERTED I,DELETED D WHERE A.ID=I.ID AND A.ID=D.ID
    END
    GO
    CREATE TRIGGER TD_TEST ON B FOR DELETE
    AS
    BEGIN
        UPDATE A SET POINT=POINT-D.TPOINT FROM A,DELETED D WHERE A.ID=D.ID
    END
    GOINSERT B(ID,NAME,TPOINT) SELECT 9,'YIZHI',99
    SELECT * FROM A
    SELECT * FROM BUPDATE B SET TPOINT=88 WHERE ID=9
    SELECT * FROM A
    SELECT * FROM BDELETE FROM B WHERE ID=9
    SELECT * FROM A
    SELECT * FROM BDROP TRIGGER TI_TEST
    DROP TRIGGER TD_TEST
    DROP TABLE A,B
      

  3.   

    晕,Access不支持触发器,A表中name等于B表name的point加上tpoint的值 意思就是A表中字段name 等于B表字段name的那一列point的值加上这会插入的tpoint 的值.
      

  4.   

    CREATE TABLE A(ID INT,NAME NCHAR(10),POINT INT)
    --INSERT A(ID,NAME,POINT) SELECT 9,'YIZHI',100CREATE TABLE B(ID INT, NAME NCHAR(10),TPOINT INT)
    GOCREATE TRIGGER TI_TEST ON B FOR INSERT
    AS
    BEGIN
        IF NOT EXISTS(SELECT 1 FROM A,INSERTED I WHERE A.ID=I.ID)
            INSERT A(ID,NAME,POINT) SELECT ID,NAME,TPOINT FROM INSERTED
        ELSE
            UPDATE A SET POINT=POINT+I.TPOINT FROM A,INSERTED I WHERE A.ID=I.ID
    END
    GO
    CREATE TRIGGER TU_TEST ON B FOR UPDATE
    AS
    BEGIN
        UPDATE A SET POINT=POINT-D.TPOINT+I.TPOINT FROM A,INSERTED I,DELETED D WHERE A.ID=I.ID AND A.ID=D.ID
    END
    GO
    CREATE TRIGGER TD_TEST ON B FOR DELETE
    AS
    BEGIN
        UPDATE A SET POINT=POINT-D.TPOINT FROM A,DELETED D WHERE A.ID=D.ID
    END
    GOINSERT B(ID,NAME,TPOINT) SELECT 9,'YIZHI',99
    SELECT * FROM A
    SELECT * FROM BUPDATE B SET TPOINT=88 WHERE ID=9
    SELECT * FROM A
    SELECT * FROM BDELETE FROM B WHERE ID=9
    SELECT * FROM A
    SELECT * FROM BDROP TRIGGER TI_TEST
    DROP TRIGGER TD_TEST
    DROP TABLE A,B
      

  5.   

    我分成2个语句来执行.
    sql1="insert into b (name,sbu tpoint)values('"+tname+"','"+tsub+"',"+ppoint+")";
    sql2="update a set point=point+"+ppoint+" where name='"+tname+"'";有错误吗.老是说某个参数未指定