加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle和TSQL语句NO LOCK

发布时间:2021-01-22 02:29:04 所属栏目:站长百科 来源:网络整理
导读:select max(Key) from MyTable with(nolock) 我有这个T-SQL语句可是必要为SQL Server和Oracle行使一个语句,虽然Oracle不能辨认“with(nolock)”.有没有步伐让这个语句在两个数据库上运行.通过Oracle忽略“with(nolock)”可能只行使Sqlserver行使这部门语句或

select max(Key) from MyTable with(nolock)

我有这个T-SQL语句可是必要为SQL Server和Oracle行使一个语句,虽然Oracle不能辨认“with(nolock)”.有没有步伐让这个语句在两个数据库上运行.通过Oracle忽略“with(nolock)”可能只行使Sqlserver行使这部门语句可能一种方法或编码都可以领略.

我行使No lock的缘故起因是由于多个用户正在会见统一个表,我必要在事宜时代找到最大值.

Oracle做的工作有点差异,以是我不必担忧表锁.

办理要领

您的查询正在执行差异的操纵.应该是什么样的查询语义?是否应该返回max(Key),包罗SQL Server版本指示的未提交事宜的影响?假如是这样

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
select max(Key)
from MyTable;

是沟通的语义.语法应该在两个AFAIK上都能正常事变.

假如您想要最后提交的最大值(密钥),则必要变动SQL Server数据库以默认行使读提交的快照断绝,因此它的举动与Oracle相同.可能您可以行使ROWLOCK,READPAST提醒实现相同的语义,但之后您又必要两个差异的查询.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读