CREATE TRIGGER 修改记录
ON URL_sl
after UPDATE
AS
declare @a int, @minid int
SELECT @a = COUNT(*) from url_bak,Deleted where url_bak.id2=Deleted.URL_id--得到记录条数
select @minid=min(url_bak.id1) from url_bak,Deleted where url_bak.id2=Deleted.URL_id
--得到符合条件的最小IDif @a < 5 --如果小于5条就在url_bak新加一条记录
begin
insert into URL_bak
select URL_id,URL_name,URL_add,URL_class,CONVERT (char(16),getdate(),120),2
from Deleted
end
else --如果大于或等于5条就把url_bak里最小ID的记录替换掉
begin
update url_bak --问题出现的地方
set url_bak.name1=deleted.URL_name,
url_bak.add1=deleted.URL_add,
url_bak.calss1=deleted.URL_class,
url_bak.time1=CONVERT (char(16),getdate(),120)
where
url_bak.id1=@minid
end
我想问大家的是在UDATE的时候怎么引用deleted虚拟表里的内容,换我自己的写法提示“列前缀deleted与查询的的表名或别名不匹配”,我觉得问题应该是出在url_bak.name1=deleted.URL_name的时候,请大家指点。
ON URL_sl
after UPDATE
AS
declare @a int, @minid int
SELECT @a = COUNT(*) from url_bak,Deleted where url_bak.id2=Deleted.URL_id--得到记录条数
select @minid=min(url_bak.id1) from url_bak,Deleted where url_bak.id2=Deleted.URL_id
--得到符合条件的最小IDif @a < 5 --如果小于5条就在url_bak新加一条记录
begin
insert into URL_bak
select URL_id,URL_name,URL_add,URL_class,CONVERT (char(16),getdate(),120),2
from Deleted
end
else --如果大于或等于5条就把url_bak里最小ID的记录替换掉
begin
update url_bak --问题出现的地方
set url_bak.name1=deleted.URL_name,
url_bak.add1=deleted.URL_add,
url_bak.calss1=deleted.URL_class,
url_bak.time1=CONVERT (char(16),getdate(),120)
where
url_bak.id1=@minid
end
我想问大家的是在UDATE的时候怎么引用deleted虚拟表里的内容,换我自己的写法提示“列前缀deleted与查询的的表名或别名不匹配”,我觉得问题应该是出在url_bak.name1=deleted.URL_name的时候,请大家指点。
解决方案 »
- sql语句如何比较两个byte[]相等 在线急等求给力
- 如何一个字段 分解成多段
- 请问如何“重新组织全文目录”,应该注意哪些事项?
- 一个创建表的错误大家看看
- 急,在线等,请高手们看看,指导指导~~~~~~~~~~~~~~~`
- 求sql:将内容包含分号的一条记录拆分成多条记录
- 请教大虾们,这样的数据如何才能得到???
- 救命呀!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 在sql server 中当表结构改了后,该表的触发器是否会消失?
- 麻烦oracle专家一个小问题
- 求sql语句
- 求一sql语句,动态更改查询结果
set url_bak.name1=deleted.URL_name,
url_bak.add1=deleted.URL_add,
url_bak.calss1=deleted.URL_class,
url_bak.time1=CONVERT (char(16),getdate(),120)
from url_bak,deleted
where url_bak.表主键=deleted表主键
url_bak.id1=@minid加个 from