Chr*_*ood 3 sql-server casting implicit-conversion
我试图消除数据库中的隐式转换.
我在UpdatedByID字段上添加了下面的CAST语句,因为这是一个Char(10),它在FROM语句中加入了一个INT.但我仍然得到隐含的转换.我一定错过了一些明显的东西?
SELECT DISTINCT ba.BookingID INTO #temp1
FROM BookedItemsAudit_tbl bia
INNER JOIN BookingAudit_tbl ba ON bia.BookingAuditID = ba.BookingAuditID
INNER JOIN User_tbl u ON u.UserId = CAST(ba.UpdatedById AS INT)
WHERE bia.BookedItemTypeId IN (1, 58, 60)
AND u.UserId = 5
Run Code Online (Sandbox Code Playgroud)
这是减少的架构
BOOKINGAUDIT_TBL
Column_name Type Length
BookingAuditID int 4
BookingID int 4
UpdatedByID CHAR 10
UpdatedBy varchar 50
UpdatedDate datetime 8
TotalMargin money 8
BookingStatusId int 4
USER_TBL
Column_name Type Length
UserId int 4
FullName varchar 100
UserName varchar 20
Run Code Online (Sandbox Code Playgroud)
此链接中的完整查询和架构
附加是提示出现在执行计划中时的错误消息

警告是关于您的显式转换而不是隐式转换.你展示的工具提示没有提到CONVERT_IMPLICIT
CAST(ba.UpdatedById AS INT)显示在计划中CONVERT(int,ba.UpdatedById ,0),它会警告你(它阻止了对ba.UpdatedById的索引搜索).
要停止查看此警告,您需要修复架构,以便加入相同数据类型的列.
| 归档时间: |
|
| 查看次数: |
1139 次 |
| 最近记录: |