create table T(ID int identity primary key)
insert into T default values
insert into T default values
go
select cast(ID as varchar(10)) as ID
from T
where ID = 1
A consulta acima possui um aviso no plano de consulta.
<Warnings>
<PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" />
</Warnings>
Por que tem o aviso?
Como uma conversão na lista de campos pode afetar a estimativa de cardinalidade?
Este aviso era novo para SQL Server 2012.
Do novo aviso "Conversão de tipo em expressão....." no SQL2012, para ruído para uso prático
O Connect foi encerrado e não parece que o problema original foi transferido para o UserVoice. Aqui está um problema diferente do UserVoice sobre o mesmo problema, a conversão de tipo pode afetar CardinalityEstimate - Converter/transmitir em colunas selecionadas
Vou fornecer a resposta chata até que alguém apareça com uma melhor.
Especulação da minha parte.
Há uma conversão em uma coluna que é usada na cláusula where que torna as estatísticas dessa coluna interessantes. Uma mudança de tipo de dados torna as estatísticas ruins, então vamos alertar sobre isso caso o valor da lista de campos acabe sendo usado em algum lugar.
Não pode, a menos que seja a lista de campos em uma tabela derivada.