Je me demande pourquoi les variables de table à l'intérieur tandis que la boucle ne se comporte pas comme d'autres variables. Les variables de table créées uniquement une fois et seront utilisées à travers une boucle entière. Mais d'autres variables sont initialisées à chaque fois que la boucle augmente.
Consultez le code ci-dessous pour plus d'informations p> est-ce un bug ?? p> p>
4 Réponses :
Votre prémisse est fausse. D'autres variables ne sont pas réinitialisées à chaque fois que la déclaration de déclaration est rencontrée non plus.
1 2 ... 9 10
Merci pour la mise à jour .. j'ai raté Isnull lors du test avec une variable .. Cela a conduit à mon cofusion .. :(
comme prévu p>
La portée variable SQL Server est par lot ou la fonction complète / procédure / déclencheur, non par construction nichée / imbriquée p>
http://msdn.microsoft.com/en-us/library /ms187953.aspx : P>
La portée d'une variable est la gamme des déclarations de transact-sql qui peuvent référence la variable. La portée d'un variables dure du point qu'il est déclaré jusqu'à la fin du lot ou procédure stockée dans laquelle il est déclaré. p> blockQuote>
Bien que ce soit vieux post, il suffit d'ajouter mes commentaires
Qu'est-ce que c'est censé prouver? Vous réinitialisez @i à la fin de la déclaration
Si vous souhaitez charger la variable de table chaque fois que la boucle exécute. Déposez de @Tablevariable une fois le travail effectué dans la boucle. P>