为什么我为相同的数据类型获得CONVERT_IMPLICIT?

时间:2011-12-27 15:17:54

标签: sql-server

请考虑以下代码段:

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)

为什么会发生这种情况,因为我有相同的数据类型?

1 个答案:

答案 0 :(得分:4)

我在使用与CONVERT_IMPLICIT不同的排序规则的数据库上下文中运行脚本时看到tempdb

从具有相同排序规则的数据库运行时,它不会显示在计划中。

在某些情况下,这可能会失败并显示错误

  

无法将varchar值隐式转换为varchar   因为归类导致值的整理无法解决   冲突

但是我不确定这种隐式转换无法完成的情况。