请教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我的代码里有
散分~
相关问答:
原帖子:http://topic.csdn.net/u/20090910/12/813a40a2-922d-4f6a-b30b-a16b9a608f81.html?seed=1336087098&r=59699368#r_59699368
下面的代码有错误吗?sql语句在Query中是可以执行出结果的。
Set C ......
自从直接在一个表里加了个字段(nvarchar 其他默认,不插入自己默认为 <null>)后,重启网站+sql server 2000 6-8个小时后出现问题:网站写数据库时脚本超时
Active Server Pages 错误 'ASP 0113 ......
错误信息:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC SQL Server Driver][Shared Memory]无效的连接。
/bbsxp/test.asp, 第 24 行
机器配置:xp sp3 ,SQL 2005(vs ......
如题:前几天服务器还是好好的 今天网页打不开突然出现错误,一查是链接不上数据库了?
(查询分析器和企业管理器都可以正常显示)
[SqlException (0x80131904): 用户 'sa' 登录失败。]
......
有两个表。分别都有ID主键。A表的ID和B表的ID是对应的,就是A表几个ID,B表就几个ID。A表的ID是什么,B表的ID就是什么。
可是现在A表的ID比B表的多了。
我现在想要把B表中少的部分给补齐了。这个插入应该怎么写 ......