当您在查询中显式使用
CONVERTor
CAST关键字时,就会发生显式转换。
当表达式中的数据类型不同时,SQL Server将根据数据类型优先级的规则自动将其强制转换,从而进行隐式转换。
例如,nvarchar的优先级高于varchar
CREATE TABLE Demo(X varchar(50) PRIMARY KEY)SELECt *FROM Demo WHERe CAST(X AS NVARCHAr(50)) = N'Foo'SELECt *FROM Demo WHERe X = N'Foo'
第二个执行计划显示谓词为
CONVERT_IMPLICIT(nvarchar(50),[D].[dbo].[Demo].[X],0)=[@1]
在这种情况下,显式转换和隐式转换都将阻止索引查找。



