请教各位老师, insert触发器, 谢谢

Angelic 2004-11-30 09:25:37
表结构
username(用户名) password密码 (province)省 city(市) province_bak(省) city_bak(市)


当有一个数据(源源, 123456, 江苏,南京)提交到数据库后,如何让province_bak和city_bak也更新成“江苏 南京”; province和city是可变的。
...全文
230 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Angelic 2004-12-09
  • 打赏
  • 举报
回复
to cxmcxm(小陈) ( ): 正解!
cxmcxm 2004-12-09
  • 打赏
  • 举报
回复
是记录update之后province_bak=原来的province,city_bak=原来city
         还是province_bak=province,city_bak=city
如果是后者,又何苦多此一举,在前台直接更新不就行了。
或者仅仅不想在插入记录时使province_bak,city_bak放空,在前台插入记录时把province_bak,city_bak的值也赋上就行。
sql server触发器中插入的数据放在inserted表中

实现你的目的,用以下代码
CREATE TRIGGER bakrecord on dbo.test FOR insert
as
UPDATE a SET province_bak=b.province,
city_bak=b.city
from dbo.test a,inserted b where a.username=b.username
Angelic 2004-12-09
  • 打赏
  • 举报
回复
这里是 MS-SQL Server, 问的就是SQL, 呵呵
顶~
zlp321002 2004-12-09
  • 打赏
  • 举报
回复
SQL 中不知道怎么解决??
zlp321002 2004-12-09
  • 打赏
  • 举报
回复
这个在Oracle 中属于变异表..
在Oracle 中可以这么解决
create trigger tr_tr1 on tablename
as insert
set nocount on
update tablename set province_bak=province,city_bak=city
update of update of (province)省 city(市)
set nocount off

Angelic 2004-12-09
  • 打赏
  • 举报
回复
是一个表中的字段。

请各位老师看看, 谢谢~
peng1014 2004-12-04
  • 打赏
  • 举报
回复
(province)省 city(市) province_bak(省) city_bak(市)
这不是一个表中的字段吧?
lmj2003 2004-12-04
  • 打赏
  • 举报
回复
用一个表的发器不能修改本表自己的数据。
Angelic 2004-12-04
  • 打赏
  • 举报
回复
Angelic 2004-12-03
  • 打赏
  • 举报
回复
是让 province_bak=province且city_bak=city

CREATE TRIGGER bakrecord on dbo.test FOR insert
as
UPDATE dbo.test SET province_bak=inserted.province,
city_bak=inserted.city

提示:列前缀"inserted"与查询中所用的表名或别名不匹配.
列前缀"inserted"与查询中所用的表名或别名不匹配.
哪里错了? 谢谢
jackluo1981 2004-12-03
  • 打赏
  • 举报
回复
create trigger_name on tablename for insert
as
update tablename set Province=inserted.province_bak,city=inserted.city_bak
comszsoft 2004-12-03
  • 打赏
  • 举报
回复
create trigger tr_tr1 on tablename
as insert
set nocount on
update tablename set province_bak=province,city_bak=city
set nocount off

这样就可以了
comszsoft 2004-12-03
  • 打赏
  • 举报
回复
create trigger tr_tr1 on tablename
as insert
declare @province varchar(50),
@city varchar(50)
set nocount on
update tablename set province_bak=province,city_bak=city
set nocount off
WangZWang 2004-12-03
  • 打赏
  • 举报
回复
是否是province=province_bak且city=city_bak?
没有说清?
Angelic 2004-12-03
  • 打赏
  • 举报
回复
不是吧, 兄弟们帮帮忙好不好, 没用过这玩意。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧