需求是遍历TagList的每个纪录,来判断表Tags的TagName列中是否存在相同纪录,如果存在就更新TagCount,如果不存在就Insert。 例子:
需要进行遍历的表TagList的内容
select * FROM TagList
结果如下
Name(列名)
asp
asp.net
php
jsp
py
... 判断是否更新或插入的代码(@TagName是为了表达清楚放上去,代表当前TagList的一个记录):
if not exists (select 1 from Tags where TagName=@TagName)
insert Tags(TagName,TagCount) values(@TagName,1)
else
update Tags set TagCount=TagCount+1 where TagName=@TagName
需要进行遍历的表TagList的内容
select * FROM TagList
结果如下
Name(列名)
asp
asp.net
php
jsp
py
... 判断是否更新或插入的代码(@TagName是为了表达清楚放上去,代表当前TagList的一个记录):
if not exists (select 1 from Tags where TagName=@TagName)
insert Tags(TagName,TagCount) values(@TagName,1)
else
update Tags set TagCount=TagCount+1 where TagName=@TagName
trigger:instead of insert
set tagcount = n.cnt
from tags m , (select name , count(*) cnt from taglist group by name) n
where m.tagname = n.name
set tagcount = n.cnt
from tags m , (select name , count(*) cnt from taglist group by name) n
where m.tagname = n.name这个不对。。
我发的这段是正常的
if not exists (select 1 from Tags where TagName=@TagName)
insert Tags(TagName,TagCount) values(@TagName,1)
else
update Tags set TagCount=TagCount+1 where TagName=@TagName问题是如何遍历每个TagName,然后对它进行判断
set tagcount = n.cnt
from tags m , (select name , count(*) cnt from taglist group by name) n
where m.tagname = n.nameinsert into tags select name , count(*) cnt from taglist where name not in (select tagname from tags) group by name不需要遍历.