表结构:
TagId TagName TagCount语句需求:
插入一条记录前判断,如果TagName已经存在同名的,则TagCount+1,否则插入新记录
TagId TagName TagCount语句需求:
插入一条记录前判断,如果TagName已经存在同名的,则TagCount+1,否则插入新记录
解决方案 »
- 【技术性散分】如内容链接~!
- 急!在sqlserver中set一个nvarchar,为什么无效?
- 关于sql server 2000和powerdesigner 11中文版的几个十分困惑的问题。。。
- 关于每次锁定10条记录的问题。
- 本地的Excel文件如何导入到远端服务器的临时表中?
- 有关top percent的困惑,请高手答疑
- 如何隐藏系统表?
- 我发觉大多数所谓的软件公司都是小型的搞数据库的
- 如何对SQL数据库中的内容进行加密,即使]别人打开也看不到信息
- 急:可否产生DTS包设计器的脚本程序(包含activex 脚本)(在线等待)
- 请教关于数据库权限问题
- 存储过程里的变量含'符号,该怎么写?
set @tagname = 'tagname'if exists (select 1 from tb where tagname = @tagname)
update tb set tagcount = tagcount + 1
else
insert into ...
insert tab1(tagName,tagCount) values(@tabName,1)
else
update tab1 set tagCount=tagCount+1 where tagName=@tabName
TagCount+1 :是参数TagCount要变化,还是数据库里最大TagCount 要变化 ?
是参数TagCount要变化
INSERT INTO TABLE(TagId,TagName,TagCount)
SELECT @TagId,@TagName,TagCount = CASE WHEN EXISTS(SELECT TagName FROM TABLE WHERE TagName=@TagName) THEN
@TagCount+1
ELSE @TagCount
还是数据库里最大TagCount
INSERT INTO TABLE(TagId,TagName,TagCount)
SELECT @TagId,@TagName,TagCount = CASE WHEN EXISTS(SELECT TagName FROM TABLE WHERE TagName=@TagName) THEN
(SELECT MAX(TagCount+1)+1 FROM TABLE)
ELSE @TagCount
create sp_name(@tagid int,@tagname varchar(100))
as
begin declare @count int
select @count=isnull(count(1),0) from tblname where tagname=@tagname
if @count=0
insert into tblname(tagid,tagname,tagcount)values(@tagid,0)
else
update tblname set tagcount=tagcount+1 where tagname=@tagname
end
TagId TagName TagCount 语句需求:
插入一条记录前判断,如果TagName已经存在同名的,则TagCount+1,否则插入新记录
*/
use tempdb
go
create table p(tagid int,tagname char(20),tagcount int )
go
insert into p values(1,'aaa',1)
insert into p values(2,'bbb',1)
insert into p values(3,'ccc',1)
go--用触发器实现
create trigger delete1 on p
instead of insert
as
if exists(select * from p where tagname=(select tagname from inserted))
update p
set tagcount=tagcount+1
where tagname=(select tagname from inserted)
else
insert into p
select * from inserted
return
go
select * from p
insert into p values(4,'ddd',1)
select * from p
insert into p values(4,'ddd',1)
select * from p