sql-server - INNER JOIN 和 JOIN 之间的结果差异
问题描述
我有以下查询来填充临时表:
SELECT A.col1, A.col2, B.col3
INTO #Mytemp1
FROM Mytable A (NOLOCK), MyTab B (NOLOCK)
WHERE A.ID = B.ID AND B.Label LIKE '1%'
我正在尝试使用INNER JOIN
而不是隐式连接:
SELECT A.col1, A.col2, B.col3
INTO #Mytemp1
FROM Mytable A (NOLOCK)
INNER JOIN MyTab B (NOLOCK) ON A.ID = B.ID
WHERE B.Label LIKE '1%'
我在第一个和第二个查询之间有 8 条记录的差异。
解决方案
您NOLOCK
在查询中使用?
NOLOCK
可以加快数据库读取,但结果集可能包含尚未提交的行,这些行通常稍后会回滚。
错误或结果集可以为空、缺少行或多次显示同一行。
为什么?因为其他事务在您读取数据的同时正在移动数据。
READ COMMITTED
可以添加一个额外的问题,即多个用户同时更改同一单元格的单个列中的数据损坏。
推荐阅读
- mysql - 在 MySQL 中,有没有办法用数字列表计算平均值?
- c# - C# 无法解压缩使用 CreateEntryFromFile 压缩的文件
- python - 有什么方法可以在openCV中以不同的曝光时间(按顺序)拍摄多个快照?
- sublimetext3 - Sublime Text 在现有窗口中打开项目文件
- azure-machine-learning-workbench - 如何添加查询另一列内容的列(脚本)转换
- python-3.x - 我的 Pyqt PlotWidget 中的 MousePressEvent - 模拟事件
- asp.net-core - 导出的 .NET Core 2.1 App 项目模板不生成文件
- linux - AWS Shared EC2 共享详情
- iis - IIS 基本身份验证配置 .NET Core 2.1 应用程序
- vba - Excel 宏以特定订单/数量打印指定打印区域