• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

求一存储过程

想飞的狼 2007-12-15 08:42:01
有如下表
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





...全文
91 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cxmcxm 2007-12-15
1楼正解
回复
想飞的狼 2007-12-15
谢谢,非常棒!结帐
回复
areswang 2007-12-15
标记看看!
回复
Limpire 2007-12-15
触发器就可以了:

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
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2007-12-15 08:42
社区公告
暂无公告