J'ai besoin de conserver certaines données de journal dans différentes tables même si ma transaction est annulée.Dans SQL Server 2005 émulant une transaction autonome
je l'ai déjà appris que dans SQL Server, il est impossible faire quelque chose comme ça
begin tran t1
insert ...
insert ...
select ...
begin tran t2
insert into log
commit tran t2
rollback tran t1
select * from log -- IS EMPTY ALWAYS
J'essaie piratage SQL Server que je madded CLR qui va exporter les données ont besoin pour LOG sur le disque du serveur local en format XML. CLR code est simple car il peut être:
File.WriteAllText(fileName, xmlLog.Value.ToString());
Avant le relâches dans des bases de production amour Ill entendre vos toughs sur cette technique.
Voici quelques questions:
- Y at-il d'autres une meilleure façon d'accomplir la transaction autonome dans SQL Server 2005
- Comment peut-être mauvais tenant ma transaction non validée alors que SQL Server est en cours d'exécution CLR (quantité de données écrites par SQL est relativement petit environ 50 - 60 enregistrements de 3 entiers et 4 flottants)
Avez-vous déjà lu cet article? http://blogs.msdn.com/b/sqlprogrammability/archive/2008/08/22/how-to-create-an-autonomous-transaction-in-sql-server-2008.aspx –
@Martin partiellement je l'ai fait, Mais je pense que cette technique est seulement possible dans MSSQL 2008 ma production est toujours sur 2005 – adopilot
Il y a 3 autres alternatives au bas de l'article que l'auteur dit s'applique aux deux. –