读书人

SQL里条件判断后如何使用增加语句

发布时间: 2012-01-03 22:16:06 作者: rapoo

SQL里条件判断后怎么使用增加语句?
想实现如下:
如果发现数据表中存在某条记录则更新,如果不存在就增加一条记录,
select * from table where nYear=1000 and nMonth=12 and nDay=31
如果该记录存在则执行
update table set nMoney=nMoney+10 where nYear=1000 and nMonth=12 and nDay=31
如果不存在就执行
insert into table (nMoney,nYear,nMonth,nDay) values (100,1000,12,31)

如果合在一起怎么写??

再有一个问题,SQL语句有没有最大长度的限制?

[解决办法]
if exists(select 1 from table where nYear=1000 and nMonth=12 and nDay=31)
update table set nMoney=nMoney+10 where nYear=1000 and nMonth=12 and nDay=31
else
insert into table (nMoney,nYear,nMonth,nDay) values (100,1000,12,31)
[解决办法]
if exists(select * from table where nYear=1000 and nMonth=12 and nDay=31)
update table set nMoney=nMoney+10 where nYear=1000 and nMonth=12 and nDay=31
else
insert into table (nMoney,nYear,nMonth,nDay) values (100,1000,12,31)
[解决办法]
非动态sql好像没有吧,就算有也是很大的。。
[解决办法]
包含 SQL 语句的字符串长度(批处理大小):65,536 * 网络数据包大小1
[解决办法]
declare @cnt int

select @cnt = count(*) from table where nYear=1000 and nMonth=12 and nDay=31
if (@cnt = 1)
begin
update table set nMoney=nMoney+10 where nYear=1000 and nMonth=12 and nDay=31
end
else
begin
insert into table (nMoney,nYear,nMonth,nDay) values (100,1000,12,31)
end

读书人网 >SQL Server

热点推荐