sql server update锁表。 我现在有多个线程同时update 一张表 update是根据不同流水号的主键来操作的。 但是出现死锁的情况 牺牲了一下进程。在sql里面加上了with(rowlock) 但是没什么用处。 个人感觉锁表。 希望高人回答,或者给点建议。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 with rowlock 是加行锁。还是分析下你死锁的详细信息吧。估计是你update的时候又select了。 --加上表锁SELECT * FROM table WITH (TABLOCKX) 我想请教一下 update 的时候又select为什么这么容易死锁。select也是有主键查询的 不会影响别的查询。 死锁的基本原理是进程互相锁住对方需要的资源.看一下系统日志,可以查到死锁详细的信息,包括互相锁住哪个数据文件的哪个数据页.用xp_readerrorlog查看. 2005里面没有snapshot提供一致性读吗!读写互不block! 多线程对一张表更新,本来就不好啊。你可以在更新前建一个DataTable对象,把待更新的数据放到DataTable对象里,待这轮多线程完后,再操作数据库,采用整表提交方式在数据库对这个数据集批量更新比较好。你可以试者以这种方式处理下 帮我看这个SQL语句咋写 数据库恢复的问题。 怎样更好的提高效率? web服务器怎么安装证书 怎么解决有重复数据的字段做为分页排序字段 字符串相似度比较 表A中有6千万数据,怎么吧表A中的数据快速导到表B中,表A,B结构一样,B表多1个字段 如何实现两个数据库的同步更新? 这种SQL语句该怎样构造? sqlserver服务器用笔记本无线连不上 截取字符 关于SQL2008是SQL2005的问题
--加上表锁
SELECT * FROM table WITH (TABLOCKX)
看一下系统日志,可以查到死锁详细的信息,包括互相锁住哪个数据文件的哪个数据页.
用xp_readerrorlog查看.