Voici un extrait de ce que j'essaie d'obtenir. J'ai une transaction imbriquée 'TRAN2', que je ne peux pas rollbackRétablissement de l'erreur de lancement de transaction imbriquée dans TSQL
SELECT 'Before', * FROM [table] WHERE field ..
BEGIN TRAN tran1
UPDATE [table] set field ... WHERE field ..
BEGIN TRAN tran2
SELECT 'During', * FROM [table] WHERE field ..
select @@trancount as 'transactioncount'
rollback tran tran2
rollback TRAN tran1
SELECT 'After', * FROM [table] WHERE field ..
me lancer cette erreur
Msg 6401, niveau 16, état 1, ligne 13
ne peut pas rouler en arrière TRAN2 . Aucune transaction ou point de sauvegarde de ce nom n'a été trouvé.
mais le @@trancount
me donne 2 opérations à ce moment
Lire Paul Randal [SQL Server Mythe par jour: les transactions imbriquées sont réelles] (http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-% 282630% 29-imbriqué-transactions-are-real.aspx) - il n'y a pas de support pour les transactions imbriquées dans SQL Server. Syntaxiquement, oui - vous pouvez le faire - mais en réalité, vous n'avez jamais vraiment de transactions imbriquées ... –