[SQL Server] TempDB : les tables variables sont-elles indépendantes des transactions d’utilisateurs ? Démonstration…

Ce petit billet démontre que les tables variables ne sont pas affectées par les transactions crées par des utilisateurs. Dans notre démonstration, nous focaliserons notre test sur l’utilisation de ROLLBACK qui permet d’annuler une transaction effectuée sur un objet.

Entrée dans le vif du sujet…

Création d’une table temporaire #Tab_temp et d’une table variable @Tab_var, puis lancement d’une transaction de manipulation de lignes des 2 tables suivi d’un ROLLBACK :

 
<br />CREATE TABLE #Tab_temp(Tab_temp_ID INT)<br />DECLARE @Tab_var TABLE(Tab_var_ID INT)<br /><br />BEGIN TRAN<br /><%%KEEPWHITESPACE%%>   INSERT #Tab_temp<br /><%%KEEPWHITESPACE%%>     OUTPUT INSERTED.Tab_temp_ID<br /><%%KEEPWHITESPACE%%>       INTO @Tab_var VALUES(1),(2),(3)<br /><br />SELECT *<br />FROM #Tab_temp<br /><br />SELECT *<br />FROM @Tab_var<br /><br />ROLLBACK<br /><br />SELECT *<br />FROM #Tab_temp<br /><br />SELECT *<br />FROM @Tab_var<br /><br />DROP TABLE #Tab_temp<br />GO<br />

Résultat :

  • Avant ROLLBACK :


  • Après ROLLBACK :

Comme on peut le noter, l’annulation de la transaction (via ROLLBACK) n’a affecté que la table temporaire, ce qui confirme l’indépendance d’une table variable sur les transactions utilisateurs.

Pour aller plus loin…

Pour avoir une comparaison entre les tables temporaires et les tables variables, vous pouvez aller ici.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s