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
create trigger tr_tr1 on tablename as insert set nocount on update tablename set province_bak=province,city_bak=city set nocount off这样就可以了
create trigger_name on tablename for insert as update tablename set Province=inserted.province_bak,city=inserted.city_bak
是让 province_bak=province且city_bak=cityCREATE TRIGGER bakrecord on dbo.test FOR insert as UPDATE dbo.test SET province_bak=inserted.province, city_bak=inserted.city提示:列前缀"inserted"与查询中所用的表名或别名不匹配. 列前缀"inserted"与查询中所用的表名或别名不匹配. 哪里错了? 谢谢
这个在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
SQL 中不知道怎么解决??
这里是 MS-SQL Server, 问的就是SQL, 呵呵 顶~
是记录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
as insert
declare @province varchar(50),
@city varchar(50)
set nocount on
update tablename set province_bak=province,city_bak=city
set nocount off
as insert
set nocount on
update tablename set province_bak=province,city_bak=city
set nocount off这样就可以了
as
update tablename set Province=inserted.province_bak,city=inserted.city_bak
as
UPDATE dbo.test SET province_bak=inserted.province,
city_bak=inserted.city提示:列前缀"inserted"与查询中所用的表名或别名不匹配.
列前缀"inserted"与查询中所用的表名或别名不匹配.
哪里错了? 谢谢
这不是一个表中的字段吧?
在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
顶~
还是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