T-SQL中类似oracle中的 for update语句问题

yjvjom 2015-07-27 03:38:06
想通过c#执行一个select来锁定MS SQL中数据表中的一条记录,直到c#关闭相应的数据库连接时才释放锁定(类似oracle的select * from tablename for update ),在网上找了好几天,说的都是用select * from tablename with(rowlock,updlock) where 语句,但试后之后发现这个语句只有在事件中才能锁定成功,否则select语句执行完毕会立即释放锁定

有没有人能帮忙解决下,谢谢!
...全文
228 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2015-07-30
  • 打赏
  • 举报
回复
sql server 没有这样的功能。 如果你长时间锁着一条记录,按 sql server 的默认隔离级别来说,其他会话,就是 select 一下,也会等待,哪怕与你现在所锁定的记录无关。
Tiger_Zhao 2015-07-27
  • 打赏
  • 举报
回复
ADO.Net 的 DataTable 实质上是一个快照式的数据集,读取完后游标(以及锁)就释放了。
并不推荐在客户端长时间进行锁定,严重影响服务器性能。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧