Encontramos um caso curioso hoje em que uma visão que está fazendo "selecionar * da tabela" tinha alguns campos de data e hora retornando como números inteiros. Isso estava funcionando anteriormente até muito recentemente. Isso não é nada na própria exibição que está forçando essas colunas a retornar como números inteiros.
Outra coisa curiosa é que reescrever a view para selecionar explicitamente todas as colunas faz com que os dados voltem como datetimes. Estou pensando que talvez seja algum tipo de plano de cache ruim, mas não tenho certeza.
Qual poderia ser o culpado dos dados sendo retirados incorretamente?
Isso aconteceu porque a definição da tabela foi alterada desde a última modificação da exibição. Talvez alguém alterou uma ou mais colunas ou a tabela foi descartada e recriada com colunas em uma ordem diferente, tipos diferentes etc.
Reparo provisório:
Correção permanente:
Pare de usar
SELECT *
em visualizações (e talvez até considere sempre usarWITH SCHEMABINDING
para todas as visualizações).Eu escrevi sobre o
SELECT *
sintoma aqui .SCHEMABINDING
here , e eles incluem a impossibilidade de alterar uma tabela quando uma exibição está vinculada ao esquema a ela.