使用临时表创建触发器和对表的影响

时间:2016-02-29 19:59:00

标签: sql sql-server database

我想按照以下步骤在SQL Server 2012中创建一个触发器:

  1. 在名为jandatafebdata)的表格中更改janareafebareaprojectpkid,prjid,jandata,febdata,janarea,febarea列时p>

  2. 然后我需要执行某些我可以执行的计算,然后将新数据存储在临时表中

  3. 如果itemid存在,我需要签入items表,然后我需要更新表中的列值,否则我需要插入值

  4. 所以现在我仍然坚持第一步如何创建触发器并在临时表中插入值

    我使用了这段代码

    CREATE TRIGGER sysgenitemsvalue 
    UPDATE ON project
    BEGIN
        create table #temp
        (
        pkid int,
        JANORG  int,
        FEBORG  int,
        ORGID int,
        PROJID int,
        BUDGETYEAR int
        )
    
        INSERT INTO #temp(pkid, JANORG, FEBORG, ORGID, PROJID, BUDGETYEAR)
            SELECT 
                v.pkid, 
                CASE 
                    WHEN v.JANORG <> '0' THEN v.JANORG 
                    WHEN v.JANAREA <> '0' THEN v.JANAREA 
                    ELSE p.JANORG 
                END "JANORG",
                CASE 
                    WHEN v.FEBORG <> '0' THEN v.FEBORG 
                    WHEN v.FEBAREA <> '0' THEN v.FEBAREA 
                    ELSE p.FEBORG 
                END  "FEBORG",
                o.org_id, o.pt_id, o.budgetyear
            FROM 
                project v, proj p, org o
            WHERE 
                o.pkid = v.orgpt_id 
                AND o.pt_id = p.projid 
                AND p.orgid = o.org_id 
                AND p.budgetyear = o.budgetyear
    

0 个答案:

没有答案