请教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我的代码里有
散分~
相关问答:
错误信息:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC SQL Server Driver][Shared Memory]无效的连接。
/bbsxp/test.asp, 第 24 行
机器配置:xp sp3 ,SQL 2005(vs ......
现在做的一个公司项目要求要有两个版本 一个是用Access的数据库 另一个用sql server 的数据库
请问有做过相关功能的高手帮忙指教 如何实现?
用的是什么思路?
参考petshop里面的架构。。。
......
现在我的情况是这样:
我的 ......
现有表 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
......
有两个表。分别都有ID主键。A表的ID和B表的ID是对应的,就是A表几个ID,B表就几个ID。A表的ID是什么,B表的ID就是什么。
可是现在A表的ID比B表的多了。
我现在想要把B表中少的部分给补齐了。这个插入应该怎么写 ......