有如下表
CREATE TABLE [dbo].[utg] (
[产品编号] [char] (13) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[产品名称] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[规格] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[档案失效期] [datetime] NULL 
) ON [PRIMARY]
GO如何在对此表里的某一数据做更改时将原记录数据和更改完毕的数据插入到另一个表(wes)中例:
产品编号    产品名称   规格   档案失效期
0351561    d        12*2     20
0225222    c        3*45     30比如更改0351561产品名称d更w则将记录插入到wse中产品编号  原产品名称   现在产品名称   原规格   现规格   原档案失效期   现档案失效期    操作员0351561   d             w         null     null     null         null         system

解决方案 »

  1.   

    触发器就可以了:create trigger your_trigger_name
    on utg
    for update
    as
    set nocount on
    insert into
    wse
    select
    产品编号 = a.产品编号,
    原产品名称 = nullif(a.产品名称,b.产品名称),
    现产品名称 = nullif(b.产品名称,a.产品名称),
    原规格 = nullif(a.规格,b.规格),
        现规格 = nullif(b.规格,a.规格),
        原档案失效期 = nullif(a.档案失效期,b.档案失效期),
        现档案失效期 = nullif(b.档案失效期,a.档案失效期),
        操作员 = 'system'
    from
    DELETED a inner join INSERTED b
    on a.产品编号 = b.产品编号
    set nocount off
    go