请考虑以下代码段:
CREATE TABLE #Temp ( Name varchar(100) )
GO
DECLARE @Name varchar(100)
SELECT @Name = '123'
SELECT * FROM #Temp WHERE Name = @Name
在检查执行计划时,我在CONVERT_IMPLICIT
变量上进行了@Name
次呼叫:
[tempdb].[dbo].[#Temp].[Name]=CONVERT_IMPLICIT(varchar(100),[@Name],0)
为什么会发生这种情况,因为我有相同的数据类型?
答案 0 :(得分:4)
我在使用与CONVERT_IMPLICIT
不同的排序规则的数据库上下文中运行脚本时看到tempdb
。
从具有相同排序规则的数据库运行时,它不会显示在计划中。
在某些情况下,这可能会失败并显示错误
无法将varchar值隐式转换为varchar 因为归类导致值的整理无法解决 冲突
但是我不确定这种隐式转换无法完成的情况。