如何在sql数据库中的一张表里每增加一条记录就将该记录的其中一个值修改其他值不变重新再该表中插入?
如表A,有id,datetime,testno,name,report5个字段(前面3个为联合主键),当我插入1,2012-12-07,t1,abcd,500的记录时自动...
如表A,有id,datetime,testno,name,report 5个字段(前面3个为联合主键),当我插入1,2012-12-07,t1,abcd,500的记录时自动在表中增加a1,2012-12-07,t1,abcd,500这样的记录,请问如何做到?触发器or存储过程都可以,谢谢!
展开
3个回答
展开全部
这个用触发器处理比较好
你可以创建一个插入触发器,当插入数据时将id 自动更新为要修改的值
类别如下其中inserted为触发器中的临时表,其结构与原表一样,保存新插入或修改後的数据。
create trigger insert_a_tri on A after insert as
update A set A.id = 'A' + A.id from inserted b where A.id = b.id and a.datetime = b.datetime and a.testno = b.testno
你可以创建一个插入触发器,当插入数据时将id 自动更新为要修改的值
类别如下其中inserted为触发器中的临时表,其结构与原表一样,保存新插入或修改後的数据。
create trigger insert_a_tri on A after insert as
update A set A.id = 'A' + A.id from inserted b where A.id = b.id and a.datetime = b.datetime and a.testno = b.testno
追问
兄弟,你这是直接修改,不上生成另一条记录,我要的是当我加入一条记录的时候自动生成另一条一样的记录,且该记录的id字段由id=1变为a1,也就是我插入id=‘1’的记录时我数据库里有id=‘1’和id=’a1‘两条记录
追答
那就直接改为插入就可以了
insert into A select 'a' + id,datetime,testno,name,report from inserted
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询