Sql Server SOMME fonction de l'Int et la Conversion Décimal

Récemment, j'ai été Jouer avec des types de données SQL Server, et un Grand nombre de données dans la table et essayer de comprendre la Performance avec Varchar et des données Numériques. Mais, j'ai eu quelques erreurs, ce qui est je ne pense pas, il ne faut pas, mais il est. Mon problème est ci-dessous :

J'ai une table :

create table sa(f1 varchar(100))

J'ai une Procédure Stockée qui Insère 100000 données dans la table :

create proc sad
as
begin
    declare @i int=0
    while @i<100000
    begin
       insert into sa values(@i)
       set @i=@i+1
    end
end


exec sad

Et j'ai testé le suivant :

select CONVERT(int,f1) from sa  //Works Fine, i tested after the Problem
select sum(convert(int,f1)) from sa  //Didn't Worked, So i tested above and Below
select sum(convert(decimal(18,2),f1)) from sa //And, it again works fine

Mais, Quand j'somme de Conversion F1 Int, il m'indique une erreur.

Mais, quand je ne sélectionnez la Conversion de Int sa belle.

Et, quand je les somme de Conversion F1 à virgule, il fonctionne très bien.

Ce que la SOMME de la fonction de type de données?

Sur les données ci-Dessus, il fonctionne bien avec Décimale, mais pas Int?

Pourquoi?

Im Obtenir l'erreur Suivante

Erreur de dépassement arithmétique expression de conversion de type de données int.

  • S'il vous plaît copiez et collez l'erreur que vous obtenez...
  • Désolé...j'ai édité ma question avec l'erreur que j'ai obtenu
  • J'essayais de trouver les problèmes de Performances, lors de l'Utilisation de type Varchar et Numérique-type de données
  • Pourrait la valeur de votre somme doit être supérieur à 2 milliards de dollars?
  • Déjà, il est 4999950000.00 qui conversion en Décimal je peux voir. Mais, la SOMME de la fonction de type de données a également converti en INT alors?
  • Si vous additionnez int, SOMME sera une int mais si vous additionnez decimal, SOMME sera une decimal. Pour plus de détails, voir ma réponse ci-dessous...
  • Avez-vous d'obtenir toutes les informations dont vous avez besoin pour répondre à la q?