Est-ce que quelqu'un connaît la commande pour vérifier s'il existe une transaction non validée dans SQL Server 2005?Comment vérifier qu'une transaction n'a pas encore été validée dans SQL Server 2005?
24
A
Répondre
34
utilisation @@trancount ou sys.dm_tran_active_transactions DMV sql 2005, 2008
8
run
DBCC OPENTRAN
19
XACT_STATE() indique l'état de la transaction d'une session, ce qui indique si la session ait ou non une transaction active, et si oui ou non la transaction est susceptible d'être engagée. Il renvoie trois valeurs:
- 1, La session a une transaction active. La session peut effectuer toutes les actions, y compris l'écriture de données et la validation de la transaction.
- 0, Aucune transaction n'est active pour la session.
- -1, La session a une transaction active, mais une erreur s'est produite qui a entraîné la transaction à classer comme une transaction non autorisée. La session ne peut pas valider la transaction ou revenir à un point de sauvegarde; il ne peut demander qu'une annulation complète de la transaction. La session ne peut effectuer aucune opération d'écriture tant qu'elle n'a pas annulé la transaction. La session peut uniquement effectuer des opérations de lecture jusqu'à ce qu'elle annule la transaction. Une fois la transaction annulée, la session peut effectuer des opérations de lecture et d'écriture et lancer une nouvelle transaction.
@@ TRANCOUNT Renvoie le nombre de transactions actives pour la connexion en cours.
- 0, pas dans une transaction
- 1, dans une transaction
- n, dans une transaction imbriquée
0
sp_who2 sp_lock
5
SELECT
trans.session_id AS [SESSION ID],
ESes.host_name AS [HOST NAME],login_name AS [Login NAME],
trans.transaction_id AS [TRANSACTION ID],
tas.name AS [TRANSACTION NAME],tas.transaction_begin_time AS [TRANSACTION BEGIN TIME],
tds.database_id AS [DATABASE ID],DBs.name AS [DATABASE NAME]
FROM sys.dm_tran_active_transactions tas
JOIN sys.dm_tran_session_transactions trans
ON (trans.transaction_id=tas.transaction_id)
LEFT OUTER JOIN sys.dm_tran_database_transactions tds
ON (tas.transaction_id = tds.transaction_id)
LEFT OUTER JOIN sys.databases AS DBs
ON tds.database_id = DBs.database_id
LEFT OUTER JOIN sys.dm_exec_sessions AS ESes
ON trans.session_id = ESes.session_id
WHERE ESes.session_id IS NOT NULL
nom --db sera get uniquement lorsqu'une commande SELECT @@ TRANCOUNT est exécutée.insert NULL
exécuter le code ci-dessus ... Est-ce que donner les détails de la session dans laquelle la transaction a lieu ..
0
Pour résumer, il existe plusieurs méthodes:
- SELECT @@ trancount
- DBCC OPENTRAN
- SELECT XACT_STATE()
- sp_lock
- SELECT * FROM sys.dm_tran_active_transactions
Questions connexes
- 1. Est-il possible de voir quelles requêtes ont été exécutées dans une transaction non validée?
- 2. sql rollback transaction 2005
- 3. Qu'arrive-t-il à la transaction dans ce SQL si elle n'est pas validée?
- 4. transaction distribuée entre deux MS SQL Server 2005
- 5. Restriction d'une instruction SELECT dans SQL Server 2005
- 6. SQL SERVER 2005
- 7. Comment récupérer le datetime lorsqu'une ligne a été insérée/mise à jour dans Sql Server 2005?
- 8. erreur dans SQL Server 2000 mais pas dans SqlServer 2005
- 9. Comment créer des modèles de procédure stockée SQL Server 2005 dans SQL Server 2005 Management Studio?
- 10. SSIS (SQL Server 2005) Ne pas intercepter l'exception SQL
- 11. SQL Server 2005 Replication
- 12. Sql Server 2005 et Linq Transactions
- 13. SQL Server 2005 - Existe-t-il un moyen de verrouiller un SELECT dans une transaction?
- 14. Requêtes XML SQL Server 2005
- 15. Comment capturer/consigner les événements "Attention" de SQL Server 2005?
- 16. SQL Server 2005 xp_cmdshell
- 17. Modification d'un déclencheur dans Sql Server 2005
- 18. Transaction SQL Server imbriquée en cascade delete
- 19. comment trouver qui verrouille qui dans SQL Server 2005
- 20. SQL Server 2005 Restauration Hanging
- 21. Transposition Colonne dans SQL Server 2005/2000
- 22. Blocage SQL Server 2005 sur la clé
- 23. Modification du SQL Server 2005 Server
- 24. Mise à jour du schéma et des lignes d'une transaction, SQL Server 2005
- 25. Prise en charge de SQL Server 2005 pour la transaction autonome Oracle-style
- 26. mots bruit SQL Server 2005
- 27. Requêtes hiérarchiques dans SQL Server 2005
- 28. MySQL to SQL Server 2005
- 29. Requête hiérarchique dans SQL Server 2005
- 30. Concaténer ntext dans SQL Server 2005
+1 très bien expliquer .. comment effectuer une annulation complète de la transaction comme vous l'avez dit 'La session ne peut pas valider la transaction ou revenir à un point de sauvegarde; il ne peut demander qu'une annulation complète de la transaction. » . que voulez-vous dire retour complet? –
@KhurramAli, "-1" signifie que vous ne pouvez pas utiliser "commit" ou "rollback YourSavePoint", mais vous devez utiliser "rollback" qui définit fondamentalement @@ transcount à zéro annulant chaque transaction imbriquée. –