猿问

sqlserver返回记录集问题

SELECT  * FROM  XXX WITH ( TABLOCKX )

用了表锁以后,导致我最后返回的数据集里面有SELECT  * FROM  XXX,真搞不懂sqlserver还这样的,

我其实只是想返回这一个数据集  select  * from #DDDTEMP

请问有什么办法让第一个锁表操作的数据集不返回。

 

不负相思意
浏览 600回答 7
7回答

一只甜甜圈

你又没用到这个表,为什么要锁它。Oracle能实现这样的需求,果然很强。

吃鸡游戏

那你sqlserver 数据库怎么锁表的?请教下好吗?

慕娘9325324

@冰之印记:你的sql语句是如何的?跟你SQL Server的环境变更设置有关吗?

慕的地8271018

SELECT * FROM 表明 WITH ( TABLOCKX ) 存储过程最后一句是:select maxId from #T_MaxIdTEMP; DROP TABLE #T_MaxIdTEMP 这样导致返回是2张表 一张就是第一次锁表的语句返回的记录集 ,整个表多返回,第二张表才是我想要的,我觉得这样有点不合理的了,我锁表操作的东西你给我返回来做什么呢,有办法清除吗,我这张表以后的数据量是巨大的,他要是也给我反悔,那效率可想而知了。oracle那边是没问题的 后来公司要个sqlserver 版本感觉问题就来了,实在不行 我只能在这个存储在套一个存储过程了。哎 sqlserver真是无语,可能是我对sqlserver不够了解吧

www说

看你是什么锁级别了. 所用的TABLOCKX 是表锁,别的sql是无法访问这个Table的.

HUWWW

答非所问了大哥。
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答