有如下表
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
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
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