请教sql高手,关于ms-sqlserver锁机制
SQL code:
declare @cnt int
select @cnt=count(1) from TableTest
if(@cnt==0)
insert into TableTest values(1,'abc')
对于这样的一段sql并发执行时,应该有可能插入重复记录
不知道大家是怎么防止出现重复数据,我用了表级锁,可是还是出现了两条同样记录
我是这样处理的
SQL code:
declare @cnt int
begin tran
select @cnt=count(1) from TableTest with(TABLOCKX)
if(@cnt==0)
begin
insert into TableTest values(1,'abc')
commit tran
end
打happyflystone..超级强人..跟鲍尔默一样强..
只知道happyflystone 不知道鲍尔默
加个约束不就行吗
with(TABLOCKX) 会有x锁,应该不会重复
学习
lz的写法至少应该有个else rollback tran
顶一下~
不清楚,顶下子
学习
up
else我的代码里有
散分~
相关问答:
我是这样写的
select top 5 * from city where id not in(select top (5*"&page-1&") id from city) ..
很失败的 还要先判断是不是第一页 然后选择性执行 sql .. 写着写着我 ......
自从直接在一个表里加了个字段(nvarchar 其他默认,不插入自己默认为 <null>)后,重启网站+sql server 2000 6-8个小时后出现问题:网站写数据库时脚本超时
Active Server Pages 错误 'ASP 0113 ......
....接到一个小程序..工作原来大概是这样的...前台是WEB服务器.架构就是ASP+SQL..前台由ASP向SQL添加服务类别(表单).然后又后台程序读取表单..要实时读取..然后显示在服务器上面..从理论上面能行通不?如果可以..后台 ......
@s='S1,S2,S12,S23';
将@s里面的S1,S2替换成处理,未处理
来者有分.
REPLACE(@s,'S1,S2','处理,未处理')
REPLACE 不好用 自己试下
SQL code:
declare @s ......
现有表 Term
结构如下
time1 time2 idterm
2009-2-15 2009-6-30 11
2009-9-10 2010-1-15 12
如果输入 2009-4-25 则应该取出idterm 11
如果输入 2009-12-5 则应该取出idterm 12
......